当前位置: 首页 > news >正文

naive-ui切换主题

1、在App.vue文件中使用

<script setup lang="ts">
import Dashboard from './views/dashboard/index.vue'
import { NConfigProvider, NGlobalStyle, darkTheme } from 'naive-ui'
import { useThemeStore } from "./store/theme";
// 获取存储的主题类型
const themeStore = useThemeStore()
</script><template><n-config-provider :theme="themeStore.darkTheme ? darkTheme: null"><dashboard /><!-- 这里不能忽略,否则不生效 --><n-global-style /></n-config-provider>
</template>

2、dashboard/index.vue文件(生成两个简单的按钮来进行主题切换测试)

<script setup lang="ts">
import { useThemeStore } from "../../store/theme";
const themeStore = useThemeStore()const changeTheme = (val: boolean) => {// 将数据存储到pinia,true深色主题,false浅色主题 themeStore.changeDarkTheme(val)
}
</script><template><div class="operate"><span @click="changeTheme(true)">深色</span><span @click="changeTheme(false)">浅色</span></div>
</template><style lang="scss" scoped>
.operate {position: absolute;top: 50px;right: 100px;span {display: inline-block;width: 80px;cursor: pointer;}
}
</style>

3、store/theme.ts

import { defineStore } from 'pinia'export type Theme = {darkTheme: boolean,
}export const useThemeStore = defineStore("useThemeStore", {state: (): Theme => ({darkTheme: false,}),actions: {changeDarkTheme(val: boolean) {this.darkTheme = val},},getters: {getDarkTheme: (state) => state.darkTheme}
})
http://www.xdnf.cn/news/566281.html

相关文章:

  • 基于RT-Thread的STM32F4开发第六讲——PWM输出(CH1和CH1N)
  • DevOps学习回顾03-ops三部曲之配置管理(CM)
  • C++核心编程_初始化列表
  • Unity3D序列化机制详解
  • 云计算与大数据进阶 | 28、存储系统如何突破容量天花板?可扩展架构的核心技术与实践—— 分布式、弹性扩展、高可用的底层逻辑(下)
  • 游戏盾功能与技术解析
  • 电力设备制造企业数字化转型路径研究:从生产优化到生态重构
  • SpringBoot3+Vue3(2)-前端基本页面配置-登录界面编写-Axios请求封装-后端跨越请求错误
  • 【Java高阶面经:微服务篇】4.大促生存法则:微服务降级实战与高可用架构设计
  • 使用计算机视觉实现目标分类和计数!!超详细入门教程
  • uni-app(2):页面
  • 用python实现汉字转拼音工具
  • 【AI News | 20250521】每日AI进展
  • 【Java高阶面经:微服务篇】9.微服务高可用全攻略:从架构设计到自动容灾
  • Ajax快速入门教程
  • OpenCV CUDA模块特征检测与描述------用于创建一个最大值盒式滤波器(Max Box Filter)函数createBoxMaxFilter()
  • PostgreSQL日志维护
  • 阿里云合集(不定期更新)
  • 适合初学者的 Blender 第二部分
  • 1.4 C++之运算符与表达式
  • leetcode hot100刷题日记——8.合并区间
  • java综合交易所13国语言,股票,区块链,外汇,自带客服系统运营级,有测试
  • Circle宣布Circle Payments Network主网上线
  • digitalworld.local: VENGEANCE靶场
  • 网络框架二次封装:基于Kotlin的高扩展性网络请求框架完整实现
  • 网工每日一练
  • 禁止window安全中心乱删文件
  • HarmonyOS基础组件:Button三种类型的使用
  • 百度Q1财报:总营收325亿元超预期 智能云同比增速达42%
  • OceanBase 开发者大会,拥抱 Data*AI 战略,构建 AI 数据底座