Javascript 在React as:import';中使用sass/附录scss';;
我正在使用preact cli生成项目,并可以修改网页包配置 我想使用以下格式将样式导入到我的组件中Javascript 在React as:import';中使用sass/附录scss';;,javascript,sass,preact,Javascript,Sass,Preact,我正在使用preact cli生成项目,并可以修改网页包配置 我想使用以下格式将样式导入到我的组件中 // Component.scss .component { width: 100px; height: 100px; background: red; } // Component.jsx import './style.scss'; const Component = () => ( <div className="component"> </div&
// Component.scss
.component {
width: 100px;
height: 100px;
background: red;
}
// Component.jsx
import './style.scss';
const Component = () => (
<div className="component">
</div>
)
export default Component
//Component.scss
.组成部分{
宽度:100px;
高度:100px;
背景:红色;
}
//Component.jsx
导入“/style.scss”;
常量组件=()=>(
)
导出默认组件
使用.scss样式设置组件样式…根据preact cli的设置,您应该在preact应用程序文件夹中运行以下命令:
npm install --save-dev node-sass sass-loader
编辑:
我知道你做错了什么。您必须使用以下样式:
样式。scss
.test{
背景:红色;
}
header.js
从“/style.scss”导入样式;
常量头=()=>(
预演应用程序
);
导出默认标题;
你为什么要这样做?
因为它是捆绑的。每个样式都将转换为唯一的名称。例如,.test
将是.test\u某物
因此,在任何其他组件中使用类名.test
都不会有问题
将其视为组件的沙箱。根据preact cli的说明,您应该在preact应用程序文件夹中运行以下命令:
npm install --save-dev node-sass sass-loader
编辑:
我知道你做错了什么。您必须使用以下样式:
样式。scss
.test{
背景:红色;
}
header.js
从“/style.scss”导入样式;
常量头=()=>(
预演应用程序
);
导出默认标题;
你为什么要这样做?
因为它是捆绑的。每个样式都将转换为唯一的名称。例如,.test
将是.test\u某物
因此,在任何其他组件中使用类名.test
都不会有问题
把它想象成组件的沙箱。当我试图在
src/components
上的组件上导入类似于preact项目的css/scss文件时,我遇到了同样的问题。似乎从src/components
文件夹导入的css/scss文件被视为css模块(如上所述),可以在Filip Lintner的回答中使用
一种解决方案是通过在项目根目录中创建preact.config.js
来定制preact cli,并修改原始的webpack配置以禁用作为CSS模块的绑定(其中类名称被散列)。在我的例子中,这就是我如何在preact.config.js
中配置webpack以仅禁用散列(最初的两行配置代码段):
有关自定义preact cli的更多信息:我在
src/components
的组件上尝试导入css/scss文件时遇到了相同的问题。似乎从src/components
文件夹导入的css/scss文件被视为css模块(如上所述),可以在Filip Lintner的回答中使用
一种解决方案是通过在项目根目录中创建preact.config.js
来定制preact cli,并修改原始的webpack配置以禁用作为CSS模块的绑定(其中类名称被散列)。在我的例子中,这就是我如何在preact.config.js
中配置webpack以仅禁用散列(最初的两行配置代码段):
有关自定义preact cli的详细信息:这并不能解决问题。我希望能够加载样式并将它们映射到我的组件的类名。我可以很好地导入sass文件,但如果我这样做的话,`body{background:red;}。component{background:black;}`。components的背景不会是黑色的,我只是试了一下;首先,我做了
preact创建默认stackoverflow测试
,然后是npm install命令作为响应。将/src/routes/home.css
更改为.scss
,将index.js
内部的导入更改为导入“/style.scss”
(还有“从“/style.scss”导入样式”的工作方式相同)。然后它就开始工作了。再补充一句——我不明白为什么一些小孩的身体部件需要改变你的身体道具。每个组件都必须关心自己。没有改变/变异它以外的任何东西:)我只是更新了答案,只是看到了你的使用示例中的错误部分。你不明白。。。我不想这样做,我想通过匿名引用来使用我的样式。这并不能解决问题。我希望能够加载样式并将它们映射到我的组件的类名。我可以很好地导入sass文件,但如果我这样做的话,`body{background:red;}。component{background:black;}`。components的背景不会是黑色的,我只是试了一下;首先,我做了preact创建默认stackoverflow测试
,然后是npm install命令作为响应。将/src/routes/home.css
更改为.scss
,将index.js
内部的导入更改为导入“/style.scss”
(还有“从“/style.scss”导入样式”的工作方式相同)。然后它就开始工作了。再补充一句——我不明白为什么一些小孩的身体部件需要改变你的身体道具。每个组件都必须关心自己。没有改变/变异它以外的任何东西:)我只是更新了答案,只是看到了你的使用示例中的错误部分。你不明白。。。我不想这样做,我想通过匿名引用来使用我的样式。