vue中使用scss全局变量
插件版本"node-sass": "^4.14.1","sass-loader": "^7.3.1","sass-resources-loader": "^2.1.1",node-sass和sass-loader默认最新版本,使用时会有各种版本报错上面的版本可用vue,config,js配置module.exports = {css: {loaderOptions: {sass: {data:
·
插件版本
"node-sass": "^4.14.1",
"sass-loader": "^7.3.1",
"sass-resources-loader": "^2.1.1",
上面的版本是可用
node-sass和sass-loader默认最新版本,使用时会有各种版本报错
vue,config,js配置
module.exports = {
css: {
loaderOptions: {
sass: {
data: `@import "./src/assets/public.scss";`
}
}
}
}
新建public.scss文件
$main-color:#fd6262;
//$main-color: var(--mainColor,#fd6262); //这样可以使用js改变--mainColor来修改此样式
@mixin main-btn{
background-color: $main-color;
border: 1px solid $main-color;
transition: all 0.3s;
&:hover{
color: #fff;
background-color: #000000;
border-color: #fff;
}
}
在需要的页面style中直接调用
<style lang="scss" scoped>
//@import "../../mixin.scss"; //可在页面单独引入
.button{
width: 142px;
height: 55px;
color:$main-color;
@include main-btn();
}
</style>
在js中使用scss公共变量
首先需要将css样式导出成一个对象、
在public.scss中
$main-color: var(--mainColor,#fd6262);
//导出对象
:export {
mainColor: $main-color;
}
在需要使用的页面引入该对象
<script>
//注意是在js中引入
import styles from '../../public.scss'
export default {
mounted() {
console.log(styles) //打印查看
},
}
</script>
打印结果
在js中动态修改$main-color
document.getElementsByTagName('body')[0].style.setProperty('--mainColor', '#fff');
更多推荐
已为社区贡献10条内容
所有评论(0)