在Vue Vite应用程序中实现暗/亮模式

开发 前端
在本文中,我将在不使用任何库的情况下将dark\Light模式功能实现到我们的Vue Vite应用程序中。

在本文中,我将在不使用任何库的情况下将dark\Light模式功能实现到我们的Vue Vite应用程序中。

我们将首先创建一个简单的Vite应用程序,然后为我们的应用程序设置一个简单的用户界面。在创建我们的Vue应用程序之前,我想提到WrapPixel提供的一些很棒的免费Vue模板,它们可以免费下载并用于个人和商业用途。他们可以节省你的时间,因为你可以直接在你的项目中使用他们令人惊叹的用户界面,这将给你的应用程序带来惊人的外观和感觉,所以一定要去看看。

在Vue Vite应用程序中实现暗/亮模式

创建一个Vuejs Vite应用程序

要设置Vite应用程序,请打开您的终端并输入以下内容:

  1. npm init vite-app themeswitcher 

这个命令将搭建一个新的vite应用程序,然后进入项目目录安装项目依赖项:

  1. cd themeswitcher 
  2. npm install 

安装后,我们现在可以使用 npm run dev 命令运行我们的应用程序:

  1. code . && npm run dev 

code . 命令将以VS Code打开我们的应用程序。

我们的应用程序现在将在端口3000上运行。

在Vue Vite应用程序中实现暗/亮模式 

随着应用程序的启动和运行,我们现在可以创建CSS。在 public 目录内创建一个 css/dark.css文件,这是我们将在黑暗模式环境中存储所有CSS代码的地方。

在dark.css文件中添加以下代码:

  1. :root { 
  2.   --text: #ffffff; 
  3.   --background: #1d1d23; 
  4. }body { 
  5.   background-color: var(--background) !important; 
  6. }h1, 
  7. h2, 
  8. h3, 
  9. h4, 
  10. h5, 
  11. h6, 
  12. p, 
  13. small, 
  14. a { 
  15.   color: var(--text) !important; 

现在将在head中创建一个link标签将其设置为我们创建的 dark.css 文件,以便可以应用在此定义的所有样式。

我们将使用Javascript类来执行此操作,在src目录中创建 src/theme.js 文件,并添加以下代码:

  1. export default class themeChanger { 
  2.     /** 
  3.      * @constructor 
  4.      */ 
  5.     constructor() {} 
  6.     _addDarkTheme() {        const darkThemeLinkEl = document.createElement('link') 
  7.         darkThemeLinkEl.setAttribute('rel', 'stylesheet') 
  8.         darkThemeLinkEl.setAttribute('href', './css/dark.css') 
  9.         darkThemeLinkEl.setAttribute('id', 'dark-theme-style') 
  10.         const docHead = document.querySelector('head') 
  11.         docHead.append(darkThemeLinkEl)    }    _removeDarkTheme() {        const darkThemeLinkEl = document.querySelector('#dark-theme-style') 
  12.         const parentNode = darkThemeLinkEl.parentNode 
  13.         parentNode.removeChild(darkThemeLinkEl)    }    _darkThemeSwitch() {        const darkThemeLinkEl = document.querySelector('#dark-theme-style') 
  14.         if (!darkThemeLinkEl) { 
  15.             this._addDarkTheme() 
  16.         } else { 
  17.             this._removeDarkTheme() 
  18.         }    }} 

我们创建3种方法:

  • _addDarkTheme():这会将link标签添加到应用程序的HTML head中。
  • _removeDarkTheme():这将删除已添加到HTML head的link标签。
  • _darkThemeSwitch():这将切换添加和删除方法,以在我们的HTML head中添加和删除link标签。

我们可以继续在Vue.js组件中使用此方法。

编辑 components/HelloWorld.vue 中的代码,如下所示:

  1. <template> 
  2.   <h3>Vite is the future of Frontend Developement.</h3> 
  3.   <small>Thanks to Evan You</small> 
  4.   <br /> 
  5.   <button @click="darkThemeSwitch">switch</button> 
  6. </template> 
  7. <script> 
  8. import themeChanger from "../util/theme.js"; 
  9. export default { 
  10.   name: "HelloWorld", 
  11.   props: { 
  12.     msg: String, 
  13.   }, 
  14.   data() { 
  15.     return { 
  16.       themeChanger: null, 
  17.     }; 
  18.   }, 
  19.   methods: { 
  20.     darkThemeSwitch() { 
  21.       this.themeChanger._darkThemeSwitch(); 
  22.     }, 
  23.   }, 
  24.   created() { 
  25.     this.themeChanger = new themeChanger(); 
  26.   }, 
  27. }; 
  28. </script> 

我们引入 themeChanger 类的实例,然后将其存储在Vue.js data实例中。然后,我们创建一个按钮,该按钮将调用我们在 theme.js 文件中创建的 _darkThemeSwitch。

完成此操作后,我们现在可以在应用程序中在明暗模式之间切换。

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2010-06-12 16:41:10

BlackBerry开

2021-09-07 10:24:36

Vue应用程序Web Workers

2021-02-20 09:57:02

人工智能移动应用

2012-06-07 09:15:14

ibmdw

2010-11-25 10:05:22

Visual StudSilverlightWCF

2021-05-06 05:37:40

JavascriptSTT机器学习

2023-12-07 08:22:58

Android应用

2009-07-17 13:45:16

WinCE开始菜单

2009-07-30 18:50:32

C#发送消息C#应用程序

2011-12-23 10:01:29

2024-06-19 09:28:43

2012-03-30 15:47:50

ibmdw

2023-11-06 08:22:34

AIDLAndroid通信

2022-04-27 19:05:46

.NETJavaScript接口

2020-09-22 07:35:42

Node.jsVue.js文件压缩

2022-12-22 08:01:09

Vue测试库测试

2023-10-27 09:19:48

DockerLinux

2009-09-22 12:17:59

ibmdwLotus

2011-10-12 11:24:44

AndroidPC

2009-05-08 10:05:06

点赞
收藏

51CTO技术栈公众号