0

我正在研究 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 的子组件中。

我认为我应该使用流来处理将道具传递给我的孩子。

但我不明白为什么在这种简单的情况下使用流而不是原语会是一个更好的解决方案?

有些东西我可能还没有理解。

4

1 回答 1

2

你没有误会什么。没有正确的答案。如果您知道一个事实,您永远不会想要更改props初始化之后,那么您可以将 theprops作为原语传递,但更常见的约定是发送 a props$,因为执行类似O.of(x)vs x(假设 RxJS)和使用无处不在的流与框架的理念是一致的。此外,有时您希望在组件初始化后动态更改属性,此时流是合适的。

为所有组件保持一致propsprops$约定可以使阅读代码更容易,因为您不必考虑“这个组件是使用原语还是道具流......?”

于 2017-03-06T23:54:43.350 回答