【问题标题】:How to change theme light(default) in Vuetify 2.x in CDN mode?如何在 CDN 模式下更改 Vuetify 2.x 中的主题灯(默认)?
【发布时间】:2020-01-20 18:58:06
【问题描述】:

还有另一个类似的主题here 但我认为答案没有更新,如果您看到该链接中的 codepen 不再工作,我试图更改主题而不必总是在每个组件上添加颜色属性,我只想定义主题颜色并继续对设计进行编码,我这样做是为了改变创建方法的主题颜色但不起作用。

我只使用 cdns 没有 vue-cli ,没有 Vue.use 像其他主题一样,我认为其他主题已解决,但在 vuetify 2.x 中该答案不适合。谢谢。

//JAVASCRIPT

var vuetify = new Vuetify ({
  theme: {
      primary: '#9e9e9e',
      secondary: '#000000',
      accent: '#8c9eff',
      error: '#ff00ff'   
  }
});

new Vue({
  el: '#app',
  vuetify : vuetify,
  data: () => ({    
  }),
  methods: {
  },
  created(){     this.$vuetify.theme.primary = '#ff00ff';
  }
});
<!-- HTML -->

<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet"/>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>

<div id="app">
  <v-app>
    <v-content>
      <v-container grid-list-xl>
        <v-btn class='rounded'>Default</v-btn>
        <v-btn class='rounded'>Primary</v-btn>
        <v-btn class='rounded'>Secondary</v-btn>
        <v-btn class='rounded'>Accent</v-btn>
        <v-btn class='rounded'>Error</v-btn>
      </v-container>         
     </v-content>
  </v-app>
</div>

【问题讨论】:

    标签: vuejs2 vuetify.js


    【解决方案1】:

    你可以在你创建的方法中使用this.$vuetify.theme.dark = true;

    如果要自定义主题,需要指定哪个主题(themes.theme.dark

    //JAVASCRIPT
    const vuetify = new Vuetify({
      theme: {
        themes: {
          dark: {
            primary: '#9e9e9e',
            secondary: '#000000',
            accent: '#8c9eff',
            error: '#ff00ff'
          },
        },
      },
    })
    
    new Vue({
      el: '#app',
      vuetify : vuetify,
      data: () => ({    
      }),
      created(){
        this.$vuetify.theme.dark = true;
      }
    });
    <!-- HTML -->
    
    <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet"/>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
    
    <div id="app">
      <v-app>
        <v-content>
          <v-container grid-list-xl>
            <v-btn class='rounded'>Default</v-btn>
            <v-btn class='rounded primary'>Primary</v-btn>
            <v-btn class='rounded secondary'>Secondary</v-btn>
            <v-btn class='rounded accent'>Accent</v-btn>
            <v-btn class='rounded error'>Error</v-btn>
          </v-container>         
         </v-content>
      </v-app>
    </div>

    【讨论】:

    • 我以前做过,但如您所见,颜色、主要颜色、次要颜色和其他颜色没有加载。我尝试添加 --> this.$vuetify.theme.dark.primary = '#ff00ff';但没什么,默认情况下我无法自定义调色板颜色。我不想在每个组件中添加 'color="primary"'。谢谢你的答复 。你知道如何默认设置主题颜色(不是浅色主题,我自己的自定义调色板颜色没有添加新组件的属性)?
    • 它有效,但您的模板使用了相同的按钮类型。我更新了我的代码以将类型传递给按钮
    • 也许我不清楚,将主要放在类属性上与我想要做的不同,我不想添加属性或粘贴类,因为那是一样的。我想自定义所有主题。不是逐个组件。比如创建我自己的主题。或自定义浅色主题或深色主题,但只需一次。不是每次我向我的 html 添加一些组件时。 ,我认为没有属性的 v-btn 是默认的。其他组件具有不同的颜色边框,因为主题具有这些颜色。这就是我想要的,不是自定义 v-btn , v-drawer .. v-etc ..
    • 如果您不提供某种区分方式,您如何期望&lt;v-btn class='rounded'&gt;Default&lt;/v-btn&gt;&lt;v-btn class='rounded'&gt;Primary&lt;/v-btn&gt; 呈现不同的效果?
    • 对不起,我认为这很混乱,是我的错误。我不想要那个。我只想 v-btn 默认获取我在主题中指定为默认的颜色。如果我愿意,默认情况下某些输入中的错误颜色可能是绿色,但默认情况下不将该颜色设置为属性。有一些组件默认具有来自主题的颜色。我像角材料一样思考,但也许那是我的错误。我不知道这是否可能。
    猜你喜欢
    • 2019-05-11
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2019-04-11
    相关资源
    最近更新 更多