dva里面两个页面有相同的class名,后面切换的页面样式被第一个覆盖了,看引入的chunk.css发现是因为还引入了前一个页面的chunk.css, 想知道这个是什么机制,不是应该哪个页面引入哪个页面的css吗.
两个页面都有引入一个其它的公共的组件,跟这个有关系吗
chunk
可以理解成把代码按照页面来进行分割,每一个页面动态叠加当前页面所需要用的css或js,就是所谓的动态加载,减少因为压缩后代码量过大而造成的时间等待。
你这里之所以后面的css会覆盖前面的样式,是因为你并没有使用css module
的方式来写样式,二是采用了全局样式,因此不可避免的就会出现全局变量污染。
解决办法有两个:
- 采用css module的方法来书写(每一个css类名都是独一无二的,不用担心全局污染)
- 在写每个css文件时用特定的class包一层(方法有点low,语义不够好,还得区分哪些是全局样式,哪些是独立样式)