我正在尝试更改 Vuetify 中的命名颜色,以便应用程序周围使用的视觉控件集中继承主题,并且不需要为每个组件单独定义颜色。

Vuetify theme docs说说更改主题颜色:

This can be easily changed. Simply pass a theme property to the Vue.use function. You can choose to modify all or only some of the theme properties, with the remaining inheriting from the default.

但是,我在 v1.3.12 版本的独立/CDN 模式下没有看到这项工作在实践中。

请注意当您从 CDN 加载 Vue.js 时不会使用 vue-cli,我们很高兴以这种方式工作,因为我们现在的重点是快速微前端 -结束发展。

This codepen显示 Vuetify 文档示例中的代码,但按钮的颜色没有改变,它们仍然是默认颜色。我什至将错误颜色更改为洋红色 (#ff00ff),以使其在工作时非常明显:

JavaScript:

Vue.use(Vuetify, { 
  theme: { 
    primary: '#3f51b5', 
    secondary: '#b0bec5', 
    accent: '#8c9eff', 
    error: '#ff00ff' 
  } 
}); 
 
new Vue({ 
  el: '#app', 
  data: () => ({ 
    // 
  }) 
}); 

HTML:

<div id="app"> 
  <v-app> 
    <v-content> 
      <v-container grid-list-xl> 
        <v-btn>Default</v-btn> 
        <v-btn color='primary'>Primary</v-btn> 
        <v-btn color='secondary'>Secondary</v-btn> 
        <v-btn color='accent'>Accent</v-btn> 
        <v-btn color='error'>Error</v-btn> 
      </v-container> 
    </v-content> 
  </v-app> 
</div> 

为了表明这个问题不仅限于 CodePen,这是我的本地项目,它有一个带有错误类的 v-navigation-drawer,自定义主题颜色设置为 Magenta:

v-navigation-drawer.error(app fixed mini-variant='true') 

我知道以前有人问过这类问题,但是this question正在使用 vue-cli 和 nuxt(即不是独立的)和 this question是 Vuetify 1.0 之前的版本。这个问题的不同之处在于独立/CDN 方面。

请您参考如下方法:

显然发布者已经调用了 Vue.use(Vuetify)。所以需要在初始化 Vue 之前重写变量:

Vue.prototype.$vuetify.theme = { 
  primary: '#3f51b5', 
  secondary: '#b0bec5', 
  accent: '#8c9eff', 
  error: '#ff00ff' 
}; 
 
 
new Vue({ ... 

或者在创建的钩子(Hook)中覆盖它们:

new Vue({ 
  el: '#app', 
  data: () => ({ 
    // 
  }), 
  created() { 
    this.$vuetify.theme.primary = '#3f51b5', 
  } 
}); 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!