美文网首页工作生活
dva简单使用(不涉及原理)

dva简单使用(不涉及原理)

作者: 初入前端的小菜鸟 | 来源:发表于2019-07-02 09:57 被阅读0次

dva 首先是一个基于 reduxredux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-routerfetch,所以也可以理解为一个轻量级的应用框架

官方文档

定义 Model

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

创建Model

export default {
  namespace: 'products',
  state: [],
  reducers: {
    'delete'(state, { payload: id }) {
      return state.filter(item => item.id !== id);
    },
  },
};
  • namespace: 表示在全局state上的key
  • state: 初始值,这里设置为空数组
  • reducers: 等同于 redux 里的 reducer,接收 action,同步更新 state

简单使用,官方简单示例
示例链接

// 摘抄代码
app.model({
  namespace: 'count',
  state: 0,
  reducers: {
    add  (count) { return count + 1 },
    minus(count) { return count - 1 },
  },
});


const App = connect(({ count }) => ({
  count
}))(function(props) {
  return (
    <div>
      <TestError />
      <h2>{ props.count }</h2>
      <button key="add" onClick={() => { props.dispatch({type: 'count/add'})}}>+</button>
      <button key="minus" onClick={() => { props.dispatch({type: 'count/minus'})}}>-</button>
    </div>
  );
});

相关文章

网友评论

    本文标题:dva简单使用(不涉及原理)

    本文链接:https://www.haomeiwen.com/subject/fuiacctx.html