将道具传递给子组件Cyclejs

时间:2017-02-16 08:15:23

标签: 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 个答案:

答案 0 :(得分:1)

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

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