2017-02-16 155 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) 
} 

它只是允许做一些投入,并在所谓的标题子组件来显示它。

我想我应该用流处理传递道具给我的孩子。

但我不明白为什么这将是一个更好的解决方案,在这个简单的使用流而不是原始的?

有些东西我可能还没有明白。

回答

1

你没有误解任何东西。没有正确的答案。如果你知道一个事实,你永远不会想要在初始化后更改props,那么你可以将props作为原语传递,但更常见的约定是发送props$,因为执行类似O.of(x)x(假设RxJS)并且在任何地方使用流都符合框架的哲学。此外,有时您会想要在组件初始化后动态更改属性,其中流是合适的。

对于所有组件,保持一致的propsprops$约定可以使代码更容易阅读,因为您不必考虑“此组件是否使用原语或流道作为道具?”?