vite vue3 中如何在 js 中使用 scss 变量
vite vue3 中如何在 js 中使用 scss 变量
不管工作还是学习,我都很喜欢用 scss 和 less ,真的比纯 css 方便太多了。
本文讲解如何在 js 里导入 scss 的变量。
在动态换肤的网站里这种做法很常见。
我使用 vite 搭建一个 vue3 项目来举例。
搭建项目
1pnpm create vite
项目名:vitescss
选择 vue 和 TypeScript
1cd vitescss
2pnpm install
3pnpm install sass
注意,安装的是 sass 。但我们是可以使用 scss 语法的。
修改 App.vue 为如下代码 npm run dev
即可查看效果
1<template>
2 <div class="demo">
3 <button
4 v-for="(item, index) in btns"
5 :key="index"
6 @click="onBtnClick(item.bgColor, item.textColor)"
7 >
8 {{ item.title }}
9 </button>
10
11 <div>
12 <div class="example" ref="exampleRef">Hello World</div>
13 </div>
14 </div>
15</template>
16
17<script lang="ts" setup>
18import { ref } from "vue";
19
20const btns = [
21 { title: "红色主题", bgColor: "#FF9191", textColor: "#FF0000" },
22 { title: "蓝色主题", bgColor: "#B3C4FF", textColor: "#042BA9" },
23 { title: "默认主题", bgColor: "#333333", textColor: "#FFFFFF" },
24];
25const currentBgColor = ref("#333333");
26const currentTextColor = ref("#FFFFFF");
27const onBtnClick = (bgColor: string, textColor: string) => {
28 console.log(bgColor, textColor);
29 currentBgColor.value = bgColor;
30 currentTextColor.value = textColor;
31};
32</script>
33
34<style scoped lang="scss">
35.demo {
36 padding: 10px;
37
38 .example {
39 --textColor: v-bind(currentTextColor);
40 --bgColor: v-bind(currentBgColor);
41
42 display: inline-block;
43 margin-top: 20px;
44 font-size: 20px;
45 padding: 20px 50px;
46 color: var(--textColor);
47 background: var(--bgColor);
48 }
49}
50</style>
发布日期:2023-04-14 23:52 字数:206 用时
相关文章
标签云
alpine(1) api网关(1) async(1) await(1) centos(4) cli(1) client-go(1) debug(1) docker(10) docker-compose(1) dockerfile(1) embed(1) es6(1) etcd(1) etcdctl(1) freemesh(2) git(6) go(5) go-zeus(5) goland(2) golang(7) grafana(2) grpc(5) grpcurl(1) homebrew(1) homedir(1) http(2) hugo(1) java(2) javascript(3) job(1) js(1) json(1) k8s(16) k8s部署指南(1) kubebuilder(1) kubectl(4) kubernetes(1) linux(2) localecompare(1) lombok(1) metrics(2) mock(1) mysql(1) npm(1) nsenter(1) nvm(1) pnpm(2) pprof(1) prettier(1) prometheus(2) protobuf3(1) protoc(1) qiankun(1) request(1) scss(1) servicemesh(1) spring(1) springcloud->freemesh(1) ssh(2) systemctl(1) tcpdump(1) typescript(2) vite(2) vscode(2) vue(8) vue-admin(2) vue3(1) webssh(1) xtermjs(1) xxl-job(1) yarn(1) zookeeper(1) 云原生(4) 云原生框架(1) 介绍(1) 单体架构->freemesh(1) 单元化(1) 博客(1) 压缩(1) 可观测(1) 后台管理系统(1) 命名规范(1) 多云多活(1) 如水网(1) 安全(1) 安装(1) 容器(2) 开发联调神器(1) 微前端(1) 微服务(2) 微服务架构->freemesh(1) 微服务框架(1) 快速开始(1) 控制面(1) 数据面(1) 文集(2) 服务发现(1) 服务网格(1) 流量泳道(1) 流量管理(1) 监控告警(1) 端口映射(1) 证书(1) 负载均衡(1) 配置(1)