Skip to content

Latest commit

 

History

History
79 lines (62 loc) · 1.24 KB

README.md

File metadata and controls

79 lines (62 loc) · 1.24 KB

reo

build

inspired by redux, vuex and choo

Overview

import reo from 'reo'

const app = reo()
app.use( plugin )
app.model( ... )
app.actions( ... )
app.getters( ... )
app.router( ... )
app.start( '#app' )

Real world example

import reo from 'reo'

const app = reo()

app.model( {
	name: 'counter',
	state: { count: 0 },
	reducers: {
		add( state ) {
			state.count++
		},
		minus( state ) {
			state.count--
		}
	}
} )

app.getters( {
	count: state => state.counter.count
} )

app.actions( {
	add( { commit } ) {
		commit( 'counter/add' )
	},
	minus( { commit } ) {
		commit( 'counter/minus' )
	}
} )

const Counter = {
	getters: {
		c: 'count'
	},
	template: `
		<button on-click="{ this.dispatch( 'minus' ) }">-</button>
		{ c }
		<button on-click="{ this.dispatch( 'add' ) }">+</button>
	`,
}

app.router( {
	routes: [
		{ path: '/', component: Counter }
	]
} )

app.start( '#app' )

License

MIT © fengzilong