Передача реквизита дочернему компоненту 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$ Соглашение для всех ваших компонентов может облегчить чтение кода, так как вам не нужно думать: "Использует ли этот компонент примитив или поток для реквизита...?"

Другие вопросы по тегам