webpack样式加载器-在react组件上导入不同的样式,而无需重写
webpack style-loader - import different styles on react components without overriding
我有两个React组件,它们内部需要样式:
产品列表:
import './list.css';
import React from 'react';
export default class List extends React.Component {
...
}
产品详细信息:
import './details.css';
import React from 'react';
export default class Details extends React.Component {
...
}
它们有不同的风格,可以相互覆盖,为了简单起见,我们假设它是body
:上的background-color
属性
list.css
body {
background-color: #ddd;
}
详细信息.css
body {
background-color: #f80;
}
实际发生的事情-当通过webpack的样式加载器捆绑时,两个元素的样式都保留在页面上
<style type="text/css">
body {
background-color: #ddd;
}
body {
background-color: #f80;
}
</style>
加载器的webpack配置:
...
{
test: /'.css$/,
loader: 'style?singleton!css!cssnext'
}
这意味着详细信息的样式在列表页上也是活动的。保持它们不同的最佳策略是什么?是否有替换样式的方法?
使用样式加载程序时。您可以使用他们提供的可用api。你可以在这里阅读。
所有冲突的css都可以放在.useable.css
中,并使用可用的api为这些文件再创建一个加载器。
{
module: {
loaders: [
{ test: /'.css$/, exclude: /'.useable'.css$/, loader: "style!css" },
{ test: /'.useable'.css$/, loader: "style/useable!css" }
]
}
}
希望能有所帮助。
使用同构样式加载器代替样式加载器。它将用组件名称命名类名,并保持样式的唯一性。因此,可以保持可组合性、独特性和批判性风格。更多信息:https://github.com/kriasoft/isomorphic-style-loader
相关文章:
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 将样式表插入iframe
- 跟踪在页面加载时应用内联样式的JavaScript
- 如果文本字段为空,则使用JavaScript应用CSS样式
- 定义完全独立的样式信息
- W3C循环样式的JavaScript
- jQuery/JavaScript在线公文包表单-打印样式表
- 如何重写下面的函数,使其不会't用于循环
- 使用递归、Ramda.js和无点样式重构字符串的getPermutations()
- FF和Chromium中CSS样式按钮的外观差异
- 如何首先设置样式<td>表中包含在窗体中的元素
- webpack样式加载器-在react组件上导入不同的样式,而无需重写
- 如何动态创建可被早期规则重写的css样式规则
- 如何在不重写样式的情况下使用JavaScript显示元素
- 元素中生成的Css.样式正在影响我的网页,我无法重写
- 如何使用javascript/angularJs应用/防止覆盖/重写css/样式
- ExtJs 4:带有Ext.ux.upload插件的组件在以MVC样式重写后停止工作
- 如何重写jQuery样式
- 为平面UI样式重写CSS
- 如何在不使用的情况下重写primefaces组件内联样式!在css中很重要