ant-design-pro uni.js & dev.js

2019-10-18  本文已影响0人  糕糕AA

- 构造model 和 services

新建的文件名字和src/pages相同,umi.js会自动注入同名业务代码

利用dva.ja中的fetch方式访问接口数据,然后在src/utils/request.js编写一层fetch封装方法;

dva.js通过model的概念把一个领域的模型管理起来,包含同步更新state的reduce若是,处理异步逻辑的effects,订阅数据源的subscriptions

put: 用于触发 action 。

yield put({ type: 'todos/add', payload: 'Learn Dva' });

call:用于调用异步逻辑,支持 promise 。

const result = yield call(fetch, '/todos');

select:用于从 state 里获取数据。

const todos = yield select(state => state.todos);

- dvaJs 的 effects-generators

dav的effects是通过generator阻止的,generator返回的是迭代器,通过yield实现暂停功能。

- dvaJS的Model以及数据流向图解

@connect

const Products = ({ dispatch, products }) => {
 function handleDelete(id) {
 dispatch({
 type: 'products/delete',
 payload: id,
 });
 }
 return (
 <div>
 <h2>List of Products</h2>
 <ProductList onDelete={handleDelete} products={products} />
 </div>
 );
};
​
// export default Products;
export default connect(({ products }) => ({
 products,
}))(Products);
image
上一篇下一篇

猜你喜欢

热点阅读