Middle
Kā darbojas karstā pārlāde (hot reload) Vue CLI piemēra gadījumā?
sobes.tech AI
Atbilde no AI
Vue CLI izmanto webpack-dev-server, kas ietver Hot Module Replacement (HMR).
HMR darba process Vue izskatās šādi:
- Izstrādes servera palaišana: Palaižot
npm run serve, webpack-dev-server uzsāk serveri un sāk uzraudzīt projekta failus. - Faila izmaiņas: Kad izstrādātājs saglabā izmaiņas failā (
.vue,.js,.cssutt.). - Izmaiņu atklāšana: webpack-dev-server atklāj izmaiņu faktu.
- Moduļa pārkompilācija: Webpack pārkompilē izmainīto moduli (piemēram, Vue komponentu).
- Atjauninājuma sūtīšana: Webpack-dev-server sūta atjauninājumu paketi (hotswap update) uz pārlūkprogrammu caur WebSocket.
- Atjauninājuma piemērošana: HMR klienta daļa (kods, kas iekļauts projektā) saņem šo paketi un mēģina to piemērot. Vue komponentiem tas nozīmē vecā komponenta definīcijas aizvietošanu ar jauno, saglabājot esošo stāvokli (piemēram, datus
data()). - DOM atjaunināšana: Vue reaktivi atjaunina DOM, izmantojot jauno šablonu vai komponenta loģiku, nevis pilnībā pārkraujot lapu.
Piemēra atjauninājumu paketes struktūra:
{
"hash": "...", // Kompilācijas hash
"c": { // Atjauninātās sastāvdaļas
"src/components/HelloWorld.vue": true // Modulis, kas jāatjaunina
}
}
HMR klienta kods saņem šo paketi un sāk atjaunināšanas loģiku src/components/HelloWorld.vue.
// Piemērs pseudo-koda HMR klienta kodā
if (module.hot) {
module.hot.accept('./components/HelloWorld.vue', function() {
// Vue komponenta atjaunināšanas loģika, kas saglabā stāvokli
// Parasti to veic vue-loader kopā ar webpack-dev-server
});
}
Tādējādi, mainot komponentu, tiek atjaunināts tikai šis komponenta daļa atmiņā pārlūkā, nevis visa lapa, kas ievērojami paātrina izstrādes procesu.