Ismerje meg a CSS-változókat és a LocalStorage API-t ezzel a praktikus Vue-projekttel.
A sötét témák webalkalmazásainkban való megvalósítása luxusból szükségszerűvé vált. Az eszközfelhasználók most esztétikai és gyakorlati okok miatt szeretnének világos témákról sötét témákra váltani, és fordítva.
A sötét témák sötétebb színpalettát kínálnak a felhasználói felületekhez, így a kezelőfelület kíméli a szemet gyenge megvilágítású környezetben. A sötét témák emellett segítenek megőrizni az akkumulátor élettartamát az OLED vagy AMOLED képernyővel rendelkező eszközökön.
Ezek az előnyök és egyebek ésszerűbbé teszik, hogy a felhasználók választási lehetőséget biztosítsanak a sötét témákra való váltáshoz.
A tesztalkalmazás beállítása
Ahhoz, hogy jobban megértse, hogyan adhat hozzá sötét témákat a Vue-hoz, létre kell hoznia egy egyszerű Vue-alkalmazást a fejlesztés teszteléséhez.
Az új Vue alkalmazás inicializálásához futtassa a következő parancsot a terminálról:
npm init vue@latest
Ez a parancs telepíti a legújabb verziót
Create-vue csomag, az új Vue-alkalmazások inicializálására szolgáló csomag. Azt is megkéri, hogy válasszon egy adott szolgáltatáskészlet közül. Nem kell kiválasztania egyiket sem, mivel ez nem szükséges az oktatóanyag hatóköréhez.Adja hozzá a következő sablont a App.vue fájlt az alkalmazásában src Könyvtár:
<template>
<div>
<h1class="header">Welcome to My Vue Apph1>
<p>This is a simple Vue app with some text and styles.p>
<divclass="styled-box">
<pclass="styled-text">Styled Textp>
div>
<buttonclass="toggle-button">Toggle Dark Modebutton>
div>
template>
A fenti kódblokk az egész alkalmazást normál HTML-ben írja le, szkript- vagy stílusblokkok nélkül. A fenti sablon osztályait stíluscélokra fogja használni. A sötét téma megvalósítása során az alkalmazás szerkezete megváltozik.
A tesztalkalmazás stílusa CSS-változókkal
CSS-változók vagy egyéni CSS-tulajdonságok, dinamikus értékek, amelyeket megadhat a stíluslapjaiban. A CSS-változók kiváló eszközöket biztosítanak a témához, mert lehetővé teszik az értékek, például a színek és a betűméretek egy helyen történő meghatározását és kezelését.
CSS-változókat és CSS-pszeudoosztály-választókat használ, hogy normál és sötét módú témát adjon a Vue-alkalmazáshoz. Ban,-ben src/assets könyvtárat, hozzon létre a stílusok.css fájlt.
Adja hozzá a következő stílusokat ehhez a styles.css fájlhoz:
/* styles.css */
:root {
--background-color: #ffffff; /* White */
--text-color: #333333; /* Dark Gray */
--box-background: #007bff; /* Royal Blue */
--box-text-color: #ffffff; /* White */
--toggle-button: #007bff; /* Royal Blue */
}
[data-theme='true'] {
--background-color: #333333; /* Dark Gray */
--text-color: #ffffff; /* White */
--box-background: #000000; /* Black */
--box-text-color: #ffffff; /* White */
--toggle-button: #000000; /* Black */
}
Ezek a deklarációk tartalmaznak egy speciális pszeudoosztály választót (:gyökér) és egy attribútumválasztó ([data-theme='true']). A gyökérválasztóban szereplő stílusok a legmagasabb szülőelemet célozzák. Ez a weboldal alapértelmezett stílusaként működik.
Az adattéma-választó olyan HTML-elemeket céloz meg, amelyeknél az attribútum igaz. Ebben az attribútumválasztóban stílusokat határozhat meg a sötét mód témához, hogy felülírja az alapértelmezett világos témát.
Ezek a deklarációk egyaránt CSS-változókat határoznak meg a -- előtag. Színértékeket tárolnak, amelyek segítségével világos és sötét témákhoz stílusozhatja az alkalmazást.
Szerkessze a src/main.js fájlt, és importálja a styles.css fájlt:
// main.js
import'./assets/styles.css'
import { createApp } from'vue'
import App from'./App.vue'
createApp(App).mount('#app')
Most adjon hozzá néhány további stílust stílusok.css, valami alatt adattéma választó. Néhány ilyen meghatározás a színváltozókra hivatkozik a var kulcsszó. Ez lehetővé teszi a használt színek egyszerű megváltoztatását az egyes változók értékének megváltoztatásával, ahogy a kezdeti stílusok teszik.
* {
background-color: var(--background-color);
text-align: center;
color: var(--text-color);
padding: 20px;
font-family: Arial, sans-serif;
transition: background-color 0.3s, color 0.3s;
}
.header {
font-size: 24px;
margin-bottom: 20px;
}
.styled-box {
background-color: var(--box-background);
color: var(--box-text-color);
padding: 10px;
border-radius: 5px;
margin: 20px 0;
}
.styled-text {
font-size: 18px;
font-weight: bold;
}
.toggle-button {
background-color: var(--toggle-button);
color: #fff;
border: none;
border-radius: 3px;
cursor: pointer;
padding: 5px 10px;
}
Az univerzális CSS választó segítségével minden elemre beállíthat egy átmeneti tulajdonságot (*), hogy egyenletes animációt hozzon létre módváltáskor:
* {
/* Add more transitions as needed */
transition: background-color 0.3s, color 0.3s;
}
Ezek az átmenetek fokozatos változást hoznak létre a háttérszínben és a szöveg színében, amikor a sötét módot váltják, így kellemes hatást keltenek.
A sötét mód logika megvalósítása
A sötét témamód megvalósításához JavaScript-logikára lesz szüksége a világos és sötét témák közötti váltáshoz. A tiédben App.vue fájlt, illessze be a következő szkriptblokkot a beírt sablonblokk alá A Vue kompozíció API-ja :
<scriptsetup>
import { ref } from 'vue';// Function to get the initial dark mode preference from local storage
const getInitialDarkMode = () => {
const userPreference = localStorage.getItem('darkMode');
return userPreference 'true'? true: false;
};// Define the ref for darkMode and initialize it with the user preference
// or false
const darkMode = ref(getInitialDarkMode());// Function to save the dark mode preference to local storage
const saveDarkModePreference = (isDarkMode) => {
localStorage.setItem('darkMode', isDarkMode);
};
// Function to toggle dark mode and update the local storage preference
const toggleDarkMode = () => {
darkMode.value = !darkMode.value;
saveDarkModePreference(darkMode.value);
};
script>
A fenti szkript tartalmazza az összes JavaScript-logikát a világos és sötét módok közötti váltáshoz a webalkalmazásban. A forgatókönyv an-val kezdődik import utasítás a ref függvény importálásához a reaktív adatok (dinamikus adatok) kezelésére a Vue-ban.
Ezután meghatározza a getInitialDarkMode funkció, amely lekéri a felhasználó sötét mód preferenciáit a böngészőé Helyi raktár. Kijelenti a sötét mód ref, inicializálva a getInitialDarkMode függvény által lekért felhasználói preferenciákkal.
A saveDarkModePreference funkció frissíti a felhasználó sötét mód beállításait a böngésző LocalStorage-jában a következővel: setItem módszer. Végül a kapcsolja be a DarkMode-ot A funkció lehetővé teszi a felhasználók számára, hogy átváltsák a sötét módot, és frissítsék a böngésző LocalStorage értékét a sötét módhoz.
A Sötét mód téma alkalmazása és az alkalmazás tesztelése
Most az Ön sablonblokkjában App.vue fájlt, adja hozzá az adattéma attribútum-választót a gyökérelemhez, hogy feltételesen alkalmazza a sötét mód témáját az Ön logikája alapján:
<template>
<div:data-theme="darkMode">
<h1class="header">Welcome to My Vue Apph1>
<p>This is a simple Vue app with some text and styles.p>
<divclass="styled-box">
<pclass="styled-text">Styled Textp>
div>
<button @click="toggleDarkMode"class="toggle-button">
Toggle Dark Mode
button>
div>
template>
Itt az adattéma-választót a darkMode ref. Ez biztosítja, hogy mikor sötét mód igaz, a sötét téma életbe lép. A gombon lévő kattintási eseményfigyelő átkapcsol a világos és sötét módok között.
Az alkalmazás előnézetéhez futtassa a következő parancsot a terminálon:
npm run dev
Egy ehhez hasonló képernyőt kell látnod:
Amikor a gombra kattint, az alkalmazásnak váltania kell a világos és a sötét témák között:
Ismerje meg, hogyan integrálhat más csomagokat Vue-alkalmazásaiba
A CSS-változók és a LocalStorage API megkönnyíti a sötét téma hozzáadását a Vue alkalmazáshoz.
Számos harmadik féltől származó könyvtár és beépített Vue-extra létezik, amelyek lehetővé teszik a webalkalmazások testreszabását és az extra funkciók használatát.