大多数大型CSS代码库都需要复杂的命名模式来帮助避免全局命名空间中的命名冲突。CSS模块通过在一个CSS文件中为所有类名创建一个局部作用域来解决这些问题。该文件被导入到JavaScript模块中,其中的CSS类被引用为字符串。然后,在构建管道(Webpack, Browserify等)中,类名被替换为生成的唯一字符串。这是责任上的重大变化。以前,人类必须管理全局命名空间,以避免类命名冲突;现在责任就落在构建工具上了。我们在CSS模块中遇到的一个小缺点是:功能测试通常超出了本地范围,因此不能引用CSS文件中定义的类名。我们建议使用id或数据属性。
大多数大型CSS代码库都需要复杂的命名模式来帮助避免全局命名空间中的命名冲突。CSS模块通过在一个CSS文件中为所有类名创建一个局部作用域来解决这些问题。该文件被导入到JavaScript模块中,其中的CSS类被引用为字符串。然后,在构建管道(Webpack, Browserify等)中,类名被替换为生成的唯一字符串。这是责任上的重大变化。以前,人类必须管理全局命名空间,以避免类命名冲突;现在责任就落在构建工具上了。我们在CSS模块中遇到的一个小缺点是:功能测试通常超出了本地范围,因此不能引用CSS文件中定义的类名。我们建议使用id或数据属性。