自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

在Vue Vite應(yīng)用程序中實(shí)現(xiàn)暗/亮模式

開發(fā) 前端
在本文中,我將在不使用任何庫的情況下將dark\Light模式功能實(shí)現(xiàn)到我們的Vue Vite應(yīng)用程序中。

在本文中,我將在不使用任何庫的情況下將dark\Light模式功能實(shí)現(xiàn)到我們的Vue Vite應(yīng)用程序中。

我們將首先創(chuàng)建一個(gè)簡單的Vite應(yīng)用程序,然后為我們的應(yīng)用程序設(shè)置一個(gè)簡單的用戶界面。在創(chuàng)建我們的Vue應(yīng)用程序之前,我想提到WrapPixel提供的一些很棒的免費(fèi)Vue模板,它們可以免費(fèi)下載并用于個(gè)人和商業(yè)用途。他們可以節(jié)省你的時(shí)間,因?yàn)槟憧梢灾苯釉谀愕捻?xiàng)目中使用他們令人驚嘆的用戶界面,這將給你的應(yīng)用程序帶來驚人的外觀和感覺,所以一定要去看看。

在Vue Vite應(yīng)用程序中實(shí)現(xiàn)暗/亮模式

創(chuàng)建一個(gè)Vuejs Vite應(yīng)用程序

要設(shè)置Vite應(yīng)用程序,請(qǐng)打開您的終端并輸入以下內(nèi)容:

  1. npm init vite-app themeswitcher 

這個(gè)命令將搭建一個(gè)新的vite應(yīng)用程序,然后進(jìn)入項(xiàng)目目錄安裝項(xiàng)目依賴項(xiàng):

  1. cd themeswitcher 
  2. npm install 

安裝后,我們現(xiàn)在可以使用 npm run dev 命令運(yùn)行我們的應(yīng)用程序:

  1. code . && npm run dev 

code . 命令將以VS Code打開我們的應(yīng)用程序。

我們的應(yīng)用程序現(xiàn)在將在端口3000上運(yùn)行。

在Vue Vite應(yīng)用程序中實(shí)現(xiàn)暗/亮模式 

隨著應(yīng)用程序的啟動(dòng)和運(yùn)行,我們現(xiàn)在可以創(chuàng)建CSS。在 public 目錄內(nèi)創(chuàng)建一個(gè) css/dark.css文件,這是我們將在黑暗模式環(huán)境中存儲(chǔ)所有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; 

現(xiàn)在將在head中創(chuàng)建一個(gè)link標(biāo)簽將其設(shè)置為我們創(chuàng)建的 dark.css 文件,以便可以應(yīng)用在此定義的所有樣式。

我們將使用Javascript類來執(zhí)行此操作,在src目錄中創(chuàng)建 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.         }    }} 

我們創(chuàng)建3種方法:

  • _addDarkTheme():這會(huì)將link標(biāo)簽添加到應(yīng)用程序的HTML head中。
  • _removeDarkTheme():這將刪除已添加到HTML head的link標(biāo)簽。
  • _darkThemeSwitch():這將切換添加和刪除方法,以在我們的HTML head中添加和刪除link標(biāo)簽。

我們可以繼續(xù)在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 類的實(shí)例,然后將其存儲(chǔ)在Vue.js data實(shí)例中。然后,我們創(chuàng)建一個(gè)按鈕,該按鈕將調(diào)用我們?cè)?theme.js 文件中創(chuàng)建的 _darkThemeSwitch。

完成此操作后,我們現(xiàn)在可以在應(yīng)用程序中在明暗模式之間切換。

 

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2010-06-12 16:41:10

BlackBerry開

2021-09-07 10:24:36

Vue應(yīng)用程序Web Workers

2021-02-20 09:57:02

人工智能移動(dòng)應(yīng)用

2012-06-07 09:15:14

ibmdw

2010-11-25 10:05:22

Visual StudSilverlightWCF

2021-05-06 05:37:40

JavascriptSTT機(jī)器學(xué)習(xí)

2023-12-07 08:22:58

Android應(yīng)用

2009-07-17 13:45:16

WinCE開始菜單

2009-07-30 18:50:32

C#發(fā)送消息C#應(yīng)用程序

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接口

2022-12-22 08:01:09

Vue測試庫測試

2020-09-22 07:35:42

Node.jsVue.js文件壓縮

2009-05-08 10:05:06

2010-01-22 10:44:10

VC++應(yīng)用程序

2023-10-27 09:19:48

DockerLinux

2009-09-22 12:17:59

ibmdwLotus
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)