npm install ppx* one store 原则
不同于redux, 我们摒弃reduce 的设计,改用了model的思想,考虑到model与view存在多对多的情况, 统一由一个store管理
* suport middleware
与redux类同,也支持中间件,因为考虑到异步的缘故,目前是与redux的中间件不同,后期考虑支持redux中间件
* promisefy
支持promise,不仅是model支持异步,而且中间件也支持异步
* suport react
依然是flux的思想,那么支持react是必然的,后期考虑支持vue等其他的库
```
npm install --save ppx
接入说明
model引用
``
import Store from 'ppx';
class App {
constructor() {
this.state = {
a: 1,
b: 2
};
}
test(state, action){
return {
...state,
aciton.test
}
}
post (state, action){
return Ajax(action.url).then(function(rep){
return {
...state,
a: rep.a
}
})
}
}
Store.model(App);
middleware引用
``
import Store from 'ppx';
var middleware = (next, action)=>{
console.log('plugin start:', action);
const data = await next(action);
console.log('plugin end:', data);
return data;
}
Store.use(middleware);
view 调用
`
import React from 'react';
import {connect} from 'ppx';
class Test extends React.Component {
constructor(props) {
super(props);
}
handleAdd(e) {
const {dispatch} = this.props;
dispatch({type: 'app/add'});
}
handleDel(e) {
const {dispatch} = this.props;
dispatch({type: 'app/minus'});
}
render() {
const {page} = this.props;
const {a} = page;
return (
export default connect(['App'])(Test);
``