Передача реквизита дочернему компоненту 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)
против x
(предполагая RxJS) и использование потоков повсюду согласуется с философией фреймворка. Кроме того, бывают случаи, когда вы захотите динамически изменить свойства после инициализации компонента, когда уместен поток.
Поддержание согласованности props
или же props$
Соглашение для всех ваших компонентов может облегчить чтение кода, так как вам не нужно думать: "Использует ли этот компонент примитив или поток для реквизита...?"