将模块化 CSS 与 Bootstrap 4 和 React 结合使用
Using modular CSS with Bootstrap 4 and React
我已经使用 ModularCSS 和 webpack 启用了 postCSS:
{
test: /\.css$/,
exclude: /node_modules/,
loader: "style-loader!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss-loader"
}
这意味着我现在可以像这样导入 "CSS Modules":
components/app.js
import '../style/bootstrap.css';
这将确保整个应用程序基于 bootstrap 的 "global css",如重置。
此外,在组件中我可以清楚地定义它们对Bootstrap的依赖,例如:
components/control.js
import Bootstrap from '../style/bootstrap.css';
class Control extends Component {
render() {
return (
<button className={Bootstrap.btn + ' ' + Bootstrap['btn-primary']}>choose me</button>
);
}
}
但是,语法 className={Bootstrap.btn + ' ' + Bootstrap['btn-primary']}
难以阅读且不易使用。
这个问题以前解决过吗?关于如何使其更具可读性和可操作性的任何建议?
您可以尝试使用 classNames
import Bootstrap from '../style/bootstrap.css';
let cx = classNames.bind(Bootstrap);
class Control extends Component {
render() {
let className = cx({
btn: true,
'btn-primary': true
});
return (
<button className={className}>choose me</button>
);
}
}
你看过 React CSS 模块了吗?
使用装饰器,好像很好用
https://github.com/gajus/react-css-modules#decorator
对于多个 class 个名称,您需要将此选项设置为 true
我已经使用 ModularCSS 和 webpack 启用了 postCSS:
{
test: /\.css$/,
exclude: /node_modules/,
loader: "style-loader!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss-loader"
}
这意味着我现在可以像这样导入 "CSS Modules":
components/app.js
import '../style/bootstrap.css';
这将确保整个应用程序基于 bootstrap 的 "global css",如重置。
此外,在组件中我可以清楚地定义它们对Bootstrap的依赖,例如:
components/control.js
import Bootstrap from '../style/bootstrap.css';
class Control extends Component {
render() {
return (
<button className={Bootstrap.btn + ' ' + Bootstrap['btn-primary']}>choose me</button>
);
}
}
但是,语法 className={Bootstrap.btn + ' ' + Bootstrap['btn-primary']}
难以阅读且不易使用。
这个问题以前解决过吗?关于如何使其更具可读性和可操作性的任何建议?
您可以尝试使用 classNames
import Bootstrap from '../style/bootstrap.css';
let cx = classNames.bind(Bootstrap);
class Control extends Component {
render() {
let className = cx({
btn: true,
'btn-primary': true
});
return (
<button className={className}>choose me</button>
);
}
}
你看过 React CSS 模块了吗?
使用装饰器,好像很好用
https://github.com/gajus/react-css-modules#decorator
对于多个 class 个名称,您需要将此选项设置为 true