Vue.js
Apžvalga
Vue.js yra progresyvus JavaScript karkasas vartotojo sąsajoms kurti. Jis sukurtas taip, kad būtų palaipsniui priimamas, ir orientuojasi į vaizdo sluoksnį, todėl jį lengva integruoti su kitomis bibliotekomis ar esamais projektais.
Greitas startas
Sukurkite repozitoriją iš šablono
Valdymo skydelyje pereikite į skirtuką Tools & Deployment. Spauskite mygtuką "New Repository", išskleidžiamame sąraše pasirinkite Vue.js šabloną, įveskite repozitorijos pavadinimą ir subdomeną, tada spauskite "Create Repository".
Klonuokite savo repozitoriją
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Įdiekite priklausomybes
npm install
Paleiskite kūrimo serverį
npm run dev
Naršyklėje atidarykite http://localhost:4200.
Sukompiliuokite ir įkelkite
npm run build
git add .
git commit -m "Initial setup"
git push origin main
Vietinis kūrimas su Docker
Jei vietoje neturite įdiegto Node.js, galite naudoti Docker Vue komandoms vykdyti. Projekte yra Dockerfile produkcijos versijoms su nginx.
Reikalavimai
Įdiekite Docker Desktop savo operacinei sistemai (Windows, Mac arba Linux).
Komandų vykdymas su Docker
# Paleisti npm install
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm install
# Paleisti kūrimo serverį (pasiekiamas adresu localhost:4200)
docker run --rm -v $(pwd):/app -w /app -p 4200:4200 node:lts-alpine npm run dev
# Sukompiliuoti produkcijai
docker run --rm -v $(pwd):/app -w /app node:lts-alpine npm run build
Projekto struktūra
Kur yra failai:
├── src/
│ ├── assets/ # Statiniai resursai (paveikslėliai, šriftai)
│ ├── components/ # Vue komponentai
│ ├── views/ # Puslapio komponentai
│ ├── router/ # Vue Router konfigūracija
│ ├── stores/ # Pinia saugyklos
│ ├── App.vue # Šaknies komponentas
│ └── main.js # Aplikacijos įėjimo taškas
├── public/ # Vieši statiniai failai
├── index.html # HTML įėjimo taškas
├── vite.config.js # Vite konfigūracija
├── package.json # Priklausomybės ir skriptai
└── Dockerfile # Docker kompiliavimo konfigūracija
Įprastos užduotys
Komponento kūrimas
Kurkite .vue failus src/components/ kataloge:
<!-- src/components/Button.vue -->
<script setup>
defineProps({
label: String
});
const emit = defineEmits(['click']);
</script>
<template>
<button
class="bg-blue-500 text-white px-4 py-2 rounded"
@click="emit('click')"
>
{{ label }}
</button>
</template>
Maršruto pridėjimas
Redaguokite src/router/index.js:
import { createRouter, createWebHistory } from 'vue-router';
import Home from '../views/Home.vue';
import About from '../views/About.vue';
const router = createRouter({
history: createWebHistory(),
routes: [
{ path: '/', component: Home },
{ path: '/about', component: About }
]
});
export default router;
Pinia saugyklos naudojimas
Sukurkite saugyklą src/stores/ kataloge:
// src/stores/counter.js
import { defineStore } from 'pinia';
export const useCounterStore = defineStore('counter', {
state: () => ({ count: 0 }),
actions: {
increment() { this.count++ },
decrement() { this.count-- }
}
});
Tailwind CSS naudojimas
Tailwind CSS 4 yra iš anksto sukonfigūruotas. Naudokite klases tiesiogiai savo šablonuose:
<div class="bg-blue-500 text-white p-4 rounded-lg">
Hello Tailwind!
</div>
Naudingos komandos
npm run dev
Paleisti kūrimo serverį (prievadas 4200)
npm run build
Sukompiliuoti produkcijai
npm run preview
Peržiūrėti produkcijos versiją vietoje
npm run test:unit
Vykdyti vienetų testus su Vitest
npm run lint
Patikrinti ir pataisyti kodo stilių
npm run format
Formatuoti kodą su Prettier
Trikčių šalinimas
npm install nepavyksta su leidimo klaidomis
Priežastis: Leidimų problemos su npm talpykla arba node_modules.
Sprendimas: Ištrinkite node_modules aplanką ir package-lock.json, tada vėl paleiskite npm install.
Prievadas 4200 jau naudojamas
Priežastis: Kitas procesas naudoja prievadą 4200.
Sprendimas: Naudokite kitą prievadą: npm run dev -- --port 3000 arba sustabdykite kitą procesą.
Komponentas neatnaujinamas
Priežastis: Reaktyvumas netinkamai sukonfigūruotas.
Sprendimas: Naudokite ref() primityvams ir reactive() objektams. Pasiekite ref reikšmes naudodami .value skripte, bet ne šablone.
Router neveikia
Priežastis: RouterView nėra App.vue arba router neregistruotas.
Sprendimas: Įsitikinkite, kad <RouterView /> yra App.vue ir router pridėtas su app.use(router) main.js faile.
Kompiliavimas nepavyksta po diegimo
Priežastis: Kompiliavimo klaidos arba trūkstamos priklausomybės.
Sprendimas: Pirmiausia vietoje paleiskite npm run build, kad patikrintumėte klaidas prieš įkeldami.
Diegimo eiga
Kiekvieną kartą, kai įkeliate kodą į Git, jūsų aplikacija automatiškai sukompiliuojama ir įdiegiama:
Jūsų įdiegtos aplikacijos URL atitinka šį formatą:
https://<your-subdomain>-<repo-name>.<session-domain>
Pavyzdys: https://student01-module-a.demo.nstrim.app