dva 框架
1、Model:
(1)、namespace:空间名,类似redux的仓库名。
(2)、state :存放state变量
(3)、reducers:一般用于修改state,可在function通过connect绑定到props里的dispatch直接调用。
payload:传值的对象的别名,所以dispatch里的payload实际上就是给action.payload绑定了相 关参数
(4)、effects:一般用于处理业务逻辑,包含三个方法,call,select,put,
call用来调用api接口,可获取返回值,接口有返回值才会继续往下走。
select用于获取state变量。
put作用的dispatch相同,可让effects里的方法调用修改state的方法。
(5)subscriptions:这个一般用于监听路由。比如,users路由触发,切换到users页面。react原来的写法,你想在界面初始化的时候就做一些事情就得基于react的生命周期函数,这里可以用这个监听器代替。自带dispatch ,dispatch可以调用reducers和effects.
(6)query:是http 地址后面附带的参数,方便传参,不用通过路由配置传参。 http://localhost:8035/attendance/personal/leave?id=jsjj23jxsu355&name=zhangsan
query={id:"jsjj23jxsu355",name:"zhangsan"}
问题一:就像我之前写在componentWillMount()里面的发送请求的方法,可以写在这里?
答案:先监听路由,确认被访问,然后直接dispatch调用effects去请求API。每一次路由变更,所有的model的这个subscription的setup都会被触发,所以这个的判断一定要写好。
2、Component:所有的UI组件
在components里面连接对应的Model,connect会把namespace对应的state绑定到props,并且还会绑定dispatch给props。
作者:Tina任
链接:https://www.jianshu.com/p/fd114f99c236
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
3、JSON
JSON.parse(text) 用于将一个字符串转换为JavaScript 对象。
JSON.stringify(obj) 用于将 JavaScript值转换为 JSON 字符串。