我正在研究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的子组件中。
我想我应该使用一个流来处理传递道具给我的孩子。
但我不明白为什么在这么简单的情况下使用流而不是原语会是一个更好的解决方案?
有一件事我可能还不明白。
发布于 2017-03-07 07:54:43
你没有误解任何事情。没有正确的答案。如果您知道在初始化后永远不会想要更改props,那么您可以将props作为原语传递,但更常见的约定是发送props$,因为执行类似O.of(x)和x的操作的成本并不高(假设是RxJS),并且到处使用流都符合框架的理念。此外,在某些情况下,您需要在组件初始化后动态更改属性,在这种情况下使用流是合适的。
为所有组件保持一致的props或props$约定可以使阅读代码变得更容易,因为您不必考虑“这个组件使用的是原语还是流...”
https://stackoverflow.com/questions/42268323
复制相似问题