内容简介:创建配置@注: 使用ts及class是为了代码提示方便,如果不需要可参考js版使用配置
- Redux本身函数式编程风格带给我们的是代码足够的简单,没有任何的黑魔法,完全就是一个一个的纯函数,基于此特性决定不更换Redux本身。
-
在学习Redux文档的过程中,有一节讲的是缩减样本代码,受此文章的启发,决定尝试能不能根据配置生成需要的
action``reducer``saga
。 -
对比模板文件发现action本身可以不存在,只是为了将各个地方的代码联系起来,方便代码阅读和维护,基于此可以考虑直接使用一个方法生成
action
和reducer
。 -
同时为了集成
saga
,又不破坏原有的耦合特性,故采用约定大于配置,在action的方法名前加_
的方式。 - 在尝试过程中发现为了所需的配置模板的风格与Dva甚是相似,怀疑过是不是与Dva的功能重复,期间学习过Dva的代码,发现还是出发点不一样。
-
本解决方案没有任何的黑魔法,只是换了一种代码组织方式,将
action``reducer``saga
的功能集中于一处,不需要任何的附加api学习成本。
Installation
- Using npm: npm install redux-template --save
- Using Yarn: yarn add redux-template
Example
创建配置
@注: 使用ts及class是为了代码提示方便,如果不需要可参考js版
import {creator, BaseConfig} from "./reduxFactory"; class Test extends BaseConfig { namespace = 'test'; initState = { num: 1 }; add = (payload: { number: number }, state?: any) => { return { num: state.num + payload.number } }; _add = function *() { yield console.log('啦啦啦'); }; } export default creator<Test>(new Test()); 复制代码
使用配置
// reducer import { combineReducers } from 'redux' import Test from "../Test"; export default combineReducers({ test: Test.reducer }) // saga import {all} from "redux-saga/effects"; import Test from '../Test'; export default function* () { yield all([ Test.saga() ]); }; 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Intel系列微处理器体系结构、编程与接口
布雷, / 机械工业出版社 / 2005-4 / 99.00元
本书是讲述Intel微处理器的国外经典教材,已经多次再版,经过长期教学使用,吐故纳新,不断完善,内容丰富,体系完整。第6版中包含了微处理器领域的最新技术发展,涵盖了Pentium 4的内容。本书结合实例讲解工作原理,并给出小结和习题,既适合教学使用,也适合自学。书中许多实例都可以作为开发类似应用的模板和原型,极具实用价值。附录还给出了备查资料,供设计和调试汇编语言时使用。本书可作为高等院校计算机、......一起来看看 《Intel系列微处理器体系结构、编程与接口》 这本书的介绍吧!