2017-02-16 5 views
0

Я изучаю CycleJs, и я ищу подходящий способ обработки передачи реквизита дочернему компоненту.Передача реквизита дочернему компоненту Cyclejs

На самом деле, я м, имеющий следующий материал:

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) 
} 

Он просто позволяет сделать несколько входов и отобразить его в дочернем компоненте под названием Title.

Я думаю, что я должен использовать поток для обработки реквизита моему ребенку.

Но я не понимаю, почему это было бы лучшим решением в этом простом использовании потока вместо примитива?

Есть что-то, чего я, вероятно, не понял.

ответ

1

Вы ничего не поняли. Правильного ответа нет. Если вы знаете, что вы никогда не захотите изменить props после инициализации, вы можете передать props в качестве примитива, но более распространенным соглашением является отправка props$, так как это не так дорого, чтобы сделать что-то вроде O.of(x) vs x (предполагая RxJS), и использование потоков во всем мире согласуется с философией структуры. Кроме того, бывают случаи, когда вы захотите динамически изменять свойства после инициализации компонента, когда поток является подходящим.

Сохранение согласованного соглашения props или props$ для всех ваших компонентов может облегчить чтение кода, поскольку вам не нужно думать: «Использует ли этот компонент примитив или поток для реквизита ...?»

Смежные вопросы