关于dva那一套样式被覆盖的问题

dva里面两个页面有相同的class名,后面切换的页面样式被第一个覆盖了,看引入的chunk.css发现是因为还引入了前一个页面的chunk.css, 想知道这个是什么机制,不是应该哪个页面引入哪个页面的css吗.
image.png
image.png
两个页面都有引入一个其它的公共的组件,跟这个有关系吗

阅读 1.9k
1 个回答

chunk 可以理解成把代码按照页面来进行分割,每一个页面动态叠加当前页面所需要用的css或js,就是所谓的动态加载,减少因为压缩后代码量过大而造成的时间等待。

你这里之所以后面的css会覆盖前面的样式,是因为你并没有使用css module的方式来写样式,二是采用了全局样式,因此不可避免的就会出现全局变量污染。

解决办法有两个:

  1. 采用css module的方法来书写(每一个css类名都是独一无二的,不用担心全局污染)
  2. 在写每个css文件时用特定的class包一层(方法有点low,语义不够好,还得区分哪些是全局样式,哪些是独立样式)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题