dva是什么
dva是对 redux + react-router + redux-saga 等的一层封装,提供了一个models,常用的属性如下:namespace,state,effects,reducers,subscriptions。
models维护了一个全局的状态,models中可以通过namespace的属性对各个状态进行隔离,相当于划分了一个作用域,然后通过@connect可以将state注入到需要用到的组件中,组件可以通过自身的props访问到这个state,
如果需要改变state,就可以通过effects和reducers,前者是一个generator,用来处理异步逻辑,后者则是处理同步逻辑,在组件中可以通过使用dispatch函数去触发effects或reducers,dispatch函数会返回一个promise,因此我们可以在reducers或者effects中通过return将数据直接返回给dispatch,而subscriptions则是可以订阅路由的变化。