Vue3+TypeScript+Vuetify+Vite 实现动态主题切换

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 Vue3+TypeScript+Vuetify+Vite 实现动态主题切换,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

创建项目

  • 创建一个 Vite 项目
npm create vite@latest
  • 输入项目名称
? Project name: vue3-ts
  • 选择vue
? Select a framework: » - Use arrow-keys. Return to submit.
    vanilla                                                
>   vue                                                    
    react                                                  
    preact                                                 
    lit                                                    
    svelte
  • 选择ts
? Select a variant: › - Use arrow-keys. Return to submit.
    JavaScript
❯   TypeScript
    Customize with create-vue ↗
    Nuxt ↗

下一步就是创建完了。

安装Vuetify

  • 我们进到项目里面安装vuetify
vue add vuetify
  • 选择Vite Preview (Vuetify 3 + Vite)
✔  Successfully installed plugin: vue-cli-plugin-vuetify

? Choose a preset:
  Vuetify 2 - Configure Vue CLI (advanced)
  Vuetify 2 - Vue CLI (recommended)
  Vuetify 2 - Prototype (rapid development)
❯ Vuetify 3 - Vite (preview)
  Vuetify 3 - Vue CLI (preview)
  • 安装完成
✔  Successfully invoked generator for plugin: vue-cli-plugin-vuetify
  • 启动服务器
npm run dev

访问: http://localhost:3000/

Vue3+TypeScript+Vuetify+Vite 实现动态主题切换

动态主题切换

App.vue文件里:

<template>
  <v-app :theme="theme">
    <v-main>
      <v-btn @click="toggleTheme">点击切换主题</v-btn>
      <HelloWorld/>
    </v-main>
  </v-app>
</template>

<script setup lang="ts">
import {ref} from 'vue'
import HelloWorld from './components/HelloWorld.vue'

const theme = ref('light')
const toggleTheme = () => theme.value = theme.value === 'light' ? 'dark' : 'light'
</script>

Vue3+TypeScript+Vuetify+Vite 实现动态主题切换

自定义主题

我们可以在vuetify.ts文件里面配置主题颜色:

//vuetify.ts
import { createVuetify } from 'vuetify'

const light = {
    dark: false,
    colors: {
        background: '#808080',
        surface: '#6200EE',
        primary: '#6200EE',
        'primary-darken-1': '#3700B3',
        secondary: '#03DAC6',
        'secondary-darken-1': '#018786',
        error: '#B00020',
        info: '#2196F3',
        success: '#4CAF50',
        warning: '#FB8C00',
    }
}

const dark = {
    dark: true,
    colors: {
    }
}

export default createVuetify({
    theme: {
        defaultTheme: 'light',
        themes: {
            light,
            dark
        }
    }
})

效果:

Vue3+TypeScript+Vuetify+Vite 实现动态主题切换

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/144764.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!