Open tunnckoCore opened 7 years ago
example
const dush = require('dush')
const app = dush().use(
actionsPlugin({
state: {
text: 'Hello',
name: 'Charlike'
},
effects: {
changeBoth: function ({ actions }, data, arg2) {
actions.changeText({ welcome: data.text })
actions.changeName(data.name, arg2)
}
},
reducers: {
changeText: ({ emit, state }, data) => ({ text: data.welcome }),
changeName: ({ actions, state }, name, arg2) => ({ name, arg2 })
}
})
)
app.on('error', (er) => console.error('ER!', er))
app.on('action', (name) => console.log('action:', name))
app.on('stateUpdate', (state, prev, partial) => {
console.log('state:', state)
console.log('prev:', prev)
console.log('partial:', partial)
console.log('====')
})
app.actions.changeBoth({ text: 'Landing!', name: 'Jon Doe' })
// app.emit.changeBoth({ text: 'Landing!', name: 'Jon Doe' })
// app.emit('changeBoth', { text: 'Landing!', name: 'Jon Doe' })
// app.actions.changeName('Charlike Mike Regent', 'some arg2')
// app.emit.changeName('Charlike Mike Regent', 'some arg2')
// app.emit('changeName', 'Charlike Mike Regent', 'some arg2')
// app.actions.changeText({ welcome: 'Welcome here, buddy!' })
// app.emit.changeText({ welcome: 'Welcome here, buddy!' })
// app.emit('changeText', { welcome: 'Welcome here, buddy!' })
Totally finished and crazy good!