方法一:使用 CSS 变量 (Custom Properties)
步骤:
-
定义全局 CSS 变量: 在全局样式文件(如
cssapp.css
或style.css
)中定义变量。深色版本
:root {--primary-color: #42b983;--secondary-color: #35495e; }
-
在组件中使用这些变量: 在 Vue 组件中使用这些变量
<template><div :style="{ color: primaryColor }">Hello World</div> </template><script> export default {data() {return {primaryColor: 'var(--primary-color)'};} } </script><style scoped> .example {background-color: var(--primary-color);color: var(--secondary-color); } </style>
-
通过 JavaScript 修改 CSS 变量: 你可以在 Vue 组件的生命周期钩子或方法中动态修改这些变量。
<template><div><button @click="changeColor">Change Color</button><div :style="{ color: primaryColor }">Hello World</div></div> </template><script> export default {data() {return {primaryColor: 'var(--primary-color)'};},methods: {changeColor() {document.documentElement.style.setProperty('--primary-color', '#ff0000');this.primaryColor = 'var(--primary-color)';}} } </script>
方法二:使用 Vuex 管理状态
步骤:
-
安装并设置 Vuex: 如果你还没有安装 Vuex,可以使用以下命令安装:
npm install vuex --save
-
在 Vuex store 中定义颜色状态:
javascript深色版本
// store/index.js import Vue from 'vue'; import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {primaryColor: '#42b983',secondaryColor: '#35495e'},mutations: {setPrimaryColor(state, color) {state.primaryColor = color;}} });
-
在组件中使用这些颜色:
html深色版本
<template><div><button @click="changeColor">Change Color</button><div :style="{ color: primaryColor }">Hello World</div></div> </template><script> export default {computed: {primaryColor() {return this.$store.state.primaryColor;}},methods: {changeColor() {this.$store.commit('setPrimaryColor', '#ff0000');}} } </script>
方法三:使用 Vue 插件
步骤:
-
创建一个 Vue 插件来管理颜色:
javascript深色版本
// plugins/colorPlugin.js export default {install(Vue) {Vue.prototype.$colors = {primary: '#42b983',secondary: '#35495e'};Vue.prototype.$setColor = function(key, value) {this.$colors[key] = value;};} };
-
在主文件中注册插件:
javascript深色版本
// main.js import Vue from 'vue'; import App from './App.vue'; import colorPlugin from './plugins/colorPlugin';Vue.config.productionTip = false;Vue.use(colorPlugin);new Vue({render: h => h(App), }).$mount('#app');
-
在组件中使用这些颜色:
<template><div><button @click="changeColor">Change Color</button><div :style="{ color: primaryColor }">Hello World</div></div> </template><script> export default {computed: {primaryColor() {return this.$colors.primary;}},methods: {changeColor() {this.$setColor('primary', '#ff0000');}} } </script>