XDcedar
XDcedar
> 说实话,感觉就算修改 CSS Modules 的命名生成规则去解决这个问题感觉还是有点戴着镣铐跳舞。CSS Modules 本身的目的就是通过哈希建立css scope,现在改了这个感觉未来难免会出现什么问题。针对超合金组件之类的支持,用 BEM 也许才是更合理的方式。 我的意思不是改,是添加一个没有哈希的 scope,这个 scope 没有样式,只是方便组件而已。组件之间的冲突可以交给组件开发者处理。 BEM 应该只是个命名规则吧,这怎么跟 CSS Modules 结合?
> 你可以去尝试一下,其实没那么容易直接去掉哈希。 是嘛..我不懂这么深..但是按我在主楼引用的那段话的意思,`直接用该名作为 suffix` 就能去掉哈希了啊,这个命名应该是自定义的吧,文档也是这么写的:,有个 `generateScopedName` 的选项 > 这两者的目标都是解决 css 污染问题。不是结合,而是选择哪种框架的问题。当然这两者并不冲突,使用 BEM 的时候可以用 CSS Modules,但既然已经使用 BEM 规则避免了污染了,还要 CSS Modules 干嘛。 但问题是,现在的开发已经用上 CSS Modules 了,很难改了
> 要考虑冲突问题,比如两个不同的 CSS Modules 文件都是 `wrapper` 呢?你是不是需要根据一些其它的规则去建立 scope。 有没有例子?我不太懂具体会产生什么样的 scope.. 我现在觉得不用,两个 `wrapper` 就随便选一个。这个 scope 不影响布局,就是方便超合金组件引用的。比如 ``,只有 `_title_[hash]` 有对应的 CSS 文件,`_website_title` 没有,超合金组件里就可以直接 `querySelector("._website_title")`。冲突了就冲突了,让组件作者自己想办法。也许选择器写长一点就解决了? > 其实现在这个开发进度,页面也不是特别多,还是有机会的(逃 那我全票支持换框架!感觉 bangumi 的页面应该也不需要考虑太多命名冲突问题..
> 就是工作量和改框架没啥区别~ 啊这..那,那我支持改框架 😂 哎呀,我刚发现主楼的引用就是你说的 😂
> 多加几个没样式的class和我之前说的多加几个id差不多吧( 那还是不一样,毕竟id不能重复( > 样式迁移倒是不麻烦。主要是 CSR 下超合金脚本的执行时机问题还是有些麻烦 我觉得,既然 tampermonkey 有解决办法,那这个应该也会有吧。就算没有,像主站那样直接在页面里加个 `` 标签也不是不可以(
自然是控制台报错..