混入(Mixins)是一种在Sass中重用样式代码的方法,但在Dart Sass(Sass的最新版本)中,混入已经被废弃,取而代之的是更现代的功能,如扩展(extends)和函数(functions)。create-react-app
默认使用Dart Sass,因此直接使用混入会导致问题。
混入(Mixins):允许你定义一组样式规则,并在多个地方重用它们。 扩展(Extends):允许一个选择器继承另一个选择器的样式规则。 函数(Functions):允许你创建可重用的样式逻辑。
在create-react-app
中使用Dart Sass时,直接使用混入会导致编译错误,因为Dart Sass不再支持混入语法。
create-react-app
支持自定义PostCSS配置。create-react-app
支持自定义PostCSS配置。以下是一个完整的React组件示例,展示了如何使用扩展和函数:
import React from 'react';
import './Button.css';
function Button({ type }) {
return (
<button className={`button ${type}`}>
Click me
</button>
);
}
export default Button;
// Button.scss
@use 'sass:color';
.button-base {
display: inline-block;
padding: 10px 20px;
border: none;
background-color: #007bff;
color: white;
}
.button {
@extend .button-base;
&.primary {
background-color: #0056b3;
}
&:hover {
background-color: color.darken(#007bff, 10%);
}
}
通过这种方式,你可以在create-react-app
中充分利用Dart Sass的功能,同时避免混入带来的问题。
领取专属 10元无门槛券
手把手带您无忧上云