2017-06-11 3 views
0

Ich bin derzeit den Quellcode für das Flux Async Beispiel zu lesen, die Strömungs- und Immutable js Bibliotheken verwendet:

Flux-Async Example

Die Definition des Todo Rekords verwirrt mich. Der Code deklariert zuerst eine Todo-Klasse (aus dem Flow-Dokument scheint dies als Schnittstelle verwendet zu werden, aber diese Datei wird nicht in das Verzeichnis flow/dieses Beispiels gesetzt, was dem Flow-typed/-Verzeichnis entspricht, wie in Ablaufdokument). Aber dann gibt es eine Neubindung der Todo-Variable und die Neubindung an eine neue Immutable-Record-Klasse. Ich verstehe nicht den Zweck der ersten Klasse Deklaration Block

declare class Todo { 
    id: string; 
    complete: boolean; 
    text: string; 

    constructor(data: { 
    id: string; 
    complete: boolean; 
    text: string; 
    }): void; 

    set(key: 'id', value: string): Todo; 
    set(key: 'complete', value: boolean): Todo; 
    set(key: 'text', value: string): Todo; 
} 

Kann jemand bitte dieses Muster erklären und was ist ihr Zweck? Kann man davon ausgehen, dass diese Schnittstelle einfach für Flow da ist und nicht mehr?

Antwort

0

In diesem Beispiel App, was Sie in der Tat sehen, ist Flux Konzept eines Datenmodells.

Sie können ein wenig über die Lagerung und Persistenz in Flux von dieser docs lesen: http://facebook.github.io/flux/docs/in-depth-overview.html#stores

auf Flux Interpretation von Flux vs MVC und bidirektionale vs unidirektionale viele Diskussionen gibt es - aber ich nehme an, Sie bereits gelesen haben, Das und deshalb erkundest du Flux.

Zusätzlicher Lesestoff:

https://codeutopia.net/blog/2016/02/01/react-application-data-flow-where-and-how-to-store-your-data/

+0

Ich war über die spezifische Syntax dieses Teils des Beispielcodes neugierig. Sie deklarieren eine Klasse mit dem Namen Todo mit dem 'declare'-Schlüsselwort von Flow und binden dann die Todo-Klasse an eine Immutable.Record-Klasse. Ich verstehe nicht, warum sie Todo zweimal mit zwei separaten Deklarationen deklarieren - warum nicht einfach die Immutable.Record-Klasse für Todo haben? Warum verwenden sie in diesem Fall das 'declare'-Schlüsselwort von Flow? – shotes