reo

2.0.1 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i reo

Weekly Downloads

1

Version

2.0.1

License

MIT

Unpacked Size

108 kB

Total Files

10

Last publish

Collaborators

  • fengzilong