0.4.0 • Published 7 years ago

cycle-component v0.4.0

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

cycle-component

build npm

Easy, isolated MVI components for Cycle.js without boilerplate

Examples

A simple component can be defined by passing in a main function to component.

import component from 'cycle-component'
import { button } from '@cycle/dom'

export default component(sources => ({
  DOM: sources.props.map(props => button({ attrs: props })),
  click: sources.DOM.select('button').events('click')
}))

More complex components—or just stricter MVI components—can be defined by passing component an object with optional intent, model, view, and sinks functions.

import component from 'cycle-component'
import { button } from '@cycle/dom'

export default component({
  intent: sources => ({
    click$: sources.DOM.select('button').events('click'),
    props$: sources.props
  }),

  model: actions => actions.props$
    .map(props => ({ props })),

  view: state => button({ attrs: state.props }),

  sinks: ({ actions, vdom$ }) => ({
    DOM: vdom$,
    click: actions.click$
  })
})
0.4.0

7 years ago

0.3.0

8 years ago

0.3.0-pre.2

8 years ago

0.3.0-pre.1

8 years ago

0.2.0

8 years ago

0.1.0

8 years ago