मैं अपनी कोणीय 2 परियोजना को साफ कर रहा हूं और कई कारणों से, मैंने बीज के साथ शुरू करने का फैसला किया है। This one।एनजी 2: कोणीय 2-वेबपैक-स्टार्टर - एचएमआर का उद्देश्य क्या है?
यह बीज HMR का उपयोग करता है, लेकिन मैं पूरी तरह से समझ में नहीं आता है कि का उद्देश्य है क्या।
शुरुआत में, मैं सोच रहा था कि एचएमआर डायनामिक लोडिंग और वेब ऐप चल रहा है, जबकि घटक को प्रतिस्थापित कर रहा था।
लेकिन चूंकि मैं app.service.ts
पर मेरी आँखों रख दिया है, मैं खो मिल गया है। यहां इस सेवा का कोड दिया गया है:
import { Injectable } from '@angular/core';
import { HmrState } from 'angular2-hmr';
@Injectable()
export class AppState {
// @HmrState() is used by HMR to track the state of any object during a hot module replacement
@HmrState() _state = { };
constructor() {
}
// already return a clone of the current state
get state() {
return this._state = this._clone(this._state);
}
// never allow mutation
set state(value) {
throw new Error('do not mutate the `.state` directly');
}
get(prop?: any) {
// use our state getter for the clone
const state = this.state;
return state[prop] || state;
}
set(prop: string, value: any) {
// internally mutate our state
return this._state[prop] = value;
}
_clone(object) {
// simple object clone
return JSON.parse(JSON.stringify(object));
}
}
मैं सोच रहा था कि सेवा बस कुछ डेटा स्टोर करने के लिए एक जगह प्रदान करती है। आखिरकार, यह सिर्फ एक उदाहरण है।
लेकिन इस लाइन मुझे भ्रमित किया: @HmrState() _state = { };
। क्या यह सेवा एचएमआर का उपयोग डेटा प्रबंधित करने के लिए कर रही है जिसे हम this.appState.set('value', value);
(यह होमकंपोनेंट से) के साथ प्रबंधित कर सकते हैं जैसे कि रेडक्स की दुकान (बिना क्रियाओं, प्रेषक, ब्लब्ला के)?
डेकोरेटर यहाँ @HmrState()
का उद्देश्य क्या है?
धन्यवाद।