2017-02-16 5 views
0

Ich studiere CycleJs und ich bin auf der Suche nach einem richtigen Weg, um Requisiten an Kind-Komponente zu übergeben.Übergeben von Requisiten an Kind-Komponente Cyclejs

Eigentlich ich bin mit den folgenden Sachen:

import {div, input} from '@cycle/dom' 


export function App(sources) { 
    const inputOnChange$ = sources.DOM.select('input').events('input') 
    const streamofResult = inputOnChange$ 
     .map(e => e.target.value) 
     .startWith('') 
     .map(defaultInput => { 
      const title = Title({value: defaultInput}) 
      return div([ 
       title, 
       input({attrs: {type: 'text'}}) 
      ]) 
     }) 
    const sinks = {DOM: streamofResult} 
    return sinks 
} 


export function Title(sources) { 
    return div(sources.value) 
} 

Es erlaubt nur einige Eingaben zu machen, und es in einer untergeordneten Komponente angezeigt werden Titel genannt.

Ich denke, ich sollte einen Strom verwenden, um Requisiten an mein Kind zu übergeben.

Aber ich verstehe nicht, warum es wäre eine bessere Lösung in diesem einfach zu einem Stream anstelle von einem primitiven verwenden?

Es gibt etwas, das ich wahrscheinlich nicht verstanden habe.

Antwort

1

Sie haben nichts missverstanden. Es gibt keine richtige Antwort. Wenn Sie wirklich wissen, dass Sie die props nach der Initialisierung nie ändern möchten, dann könnten Sie die props als primitive übergeben, aber die üblichere Konvention ist, senden Sie eine props$, da es nicht viel teurer ist, etwas wie O.of(x) vs x zu tun (Annahme von RxJS) und die Verwendung von Streams überall ist im Einklang mit der Philosophie des Frameworks. Darüber hinaus gibt es Situationen, in denen Sie die Eigenschaften dynamisch nach der Komponenteninitialisierung ändern möchten, wenn ein Stream geeignet ist.

Eine konsistente props oder props$ Konvention für alle Ihre Komponenten kann das Lesen des Codes erleichtern, da Sie nicht denken müssen: "Verwendet diese Komponente ein primitiv oder einen Stream für Requisiten ...?"

Verwandte Themen