常用开发辅助工具

一、Chrome扩展包

1、React-Developer-Tools
检视React组件的树形结构。
下载地址:https://chrome.google.com/webstore/detail/react-developer-tools/fmkadmapgofadopljbjfkapdkoienihi
2、Redux-DevTools
检视Redux数据流,可以将Store状态跳跃到任何一个历史状态,也就是所谓的“时间旅行”功能。
下载地址:https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd
3、React-Perf
可以发现react组件渲染的性能问题
下载地址:https://chrome.google.com/webstore/detail/react-perf/hacmcodfllhbnekmghgdlplbdnahmhmm

二、Redux辅助及中间件

1、redux-immutable-state-invariant
在Redux项目中,有一个规则,每一个reducer函数都必须是一个纯函数,不能修改传入的参数state和action。但是只靠开发人员去遵守这个规则,并不可靠,因为规则总是会被无心违反的。
redux-immutable-state-invariant包,提供了一个Redux中间件,它能够让Redux在每次派发动作之后做一个检查。如果发现某个reducer违反了作为一个纯函数的规定,擅自修改了state,就会给一个大大的错误警告,从而让开发者意识到自己犯了一个错误,必须要修正。

npm install  --save-dev redux-immutable-state-invariant

注意:redux-immutable-state-invariant这种检查在开发环境很有用,但是在产品环境下,这样的出错提示没有意义。毕竟用户不会去关心什么错误提示,用户也看不懂。况且这种检查不仅要消耗计算资源,javaScript代码体积也会增大。所以我们通常在产品环境中不启用redux-immutable-state-invariant。
2、reselect
reselect库是Redux的一个中间件,是一个简单的Redux库。reselect中使用了缓存机制,它要解决的问题是:“在组件交互操作的时候,state发生变化的时候如何减少渲染的压力”。

npm install --save reselect

虽然reselect库以re开头,但是逻辑上和React/Redux没有直接关系,实际上,在任何需要这种具有记忆的计算场合都可以使用reselect,不过,对于React和Redux组合的应用,reselect无疑能提供绝佳的支持。
3、redux-thunk
thunk是基于redux副作用逻辑的推荐中间件,包括需要访问存储的复杂同步逻辑,以及像AJAX请求这样的简单异步逻辑。
redux-thunk中间件允许您编写返回函数而不是动作的动作创建者。thunk可用于延迟动作的发送,或仅在满足某个条件时发送。内部函数接收存储方法dispatchgetState参数。

npm install --save redux-thunk

缺点:reducer返回结果用纯函数方式对服务器访问,而执行访问资源的操作将由reducer调用者去执行。
4、redux-saga
redux-saga 是一个旨在使应用程序副作用(即异步事物,如数据获取和不纯的东西,如访问浏览器缓存)更容易管理,执行更高效,易于测试,以及更好地处理故障的库。
心理模型是一个saga就像你的应用程序中的一个单独的线程,它独自负责副作用。redux-saga是一个用于管理redux应用异步操作的中间件,这意味着可以使用正常的redux操作从主应用程序启动,暂停和取消此线程,它可以访问完整的redux应用程序状态,也可以调度redux操作。
redux-saga与redux-thunk相反,你最终没有回调地狱,你可以轻松地测试你的异步流程,你的行动保持纯粹。

npm install --save redux-saga

缺点:体积大,要求开发这能理解ES6、async和await语法。
5、利用promise实现异步操作中间件

a、redux-promise
b、redux-promises(redux-promises向后兼容redux-thunk)
c、redux-simple-promise
d、redux-promise-middleware

6、其他redux处理异步的中间件

a、redux-effects
b、redux-side-effects
c、redux-loop
d、redux-observable

三、单元测试

1、Mocha
Mocha是流行的JavaScript测试框架之一,通过它添加和运行测试,从而保证代码质量

npm install -g mocha
npm install --save-dev mocha

2、Chai.js断言库
Chai是一个可以在node和浏览器环境运行的BDD/TDD断言库,可以和任何JavaScript测试框架结合。

npm install chai

BDD(Behavior Driven Development行为驱动开发)
是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作
TDD(Test Driven Development测试驱动开发)
测试先于编写代码的思想,用于指导软件开发
3、jest
jest 是facebook推出的一款测试框架,集成了 Mocha,chai,jsdom,sinon等功能。

npm install -g jest
npm install --save-dev jest

4、Enzyme
Enzyme是React的JavaScript测试实用程序,可以更轻松地测试React Components的输出。您还可以在给定输出的情况下操纵,遍历并以某种方式模拟运行时
5、Sinon.js
独立和测试框架无关的JavaScript测试间谍

pm install sinon

6、redux-mock-store
用于测试redux异步操作创建器和中间件的模拟存储。模拟存储将创建一个调度操作数组,用作测试的操作日志。

npm install redux-mock-store --save-dev
四、react动画

1、react-motion
它是一个react动画库

npm install --save react-motion

2、react-addons-css-transition-group
react-addons-css-transition-group插件,就是利用css的transition和animation实现组件的进场和出场动画的。ReactCSSTransitionGroup是在ReactTransitionGroup的基础上进行再封装。

五、EJS高效的 JavaScript 模板引擎

"E" 代表 "effective",即【高效】。EJS 是一套简单的模板语言,帮你利用普通的 JavaScript 代码生成 HTML 页面。EJS 没有如何组织内容的教条;也没有再造一套迭代和控制流语法;有的只是普通的 JavaScript 代码而已。

六、Express

1、Express
基于 Node.js平台,快速、开放、极简的 Web 开发框架

npm install express --save
七、Webpack

1、webpack-dev-middleware
webpack-dev-middleware就是,生成一个与webpack的compiler绑定的中间件,然后在express启动的服务app中调用这个中间件。
其作用简单总结为以下三点:通过watch mode,监听资源的变更,然后自动打包(如何实现,见下文详解)、快速编译,走内存、返回中间件,支持express的use格式。

npm install webpack-dev-middleware --save-dev

注意:此模块至少需要Node v6.9.0和Webpack v4.0.0,并且必须与接受快速中间件的服务器一起使用。不建议全局安装此模块。
2、webpack-hot-middleware
仅使用webpack-dev-middleware进行Webpack热重装。这允许您在没有webpack-dev-server的情况下将热重新加载添加到现有服务器中。

npm install --save-dev webpack-hot-middleware

3、react-hot-loader
react-hot-loader是react组件的热加载。但是webpack-dev-server已经是热加载,为何还要在 react 项目还要安装 react-hot-loader 呢?
其实这两者的更新是有区别的,webpack-dev-server 的热加载是开发人员修改了代码,代码经过打包,重新刷新了整个页面。而 react-hot-loader 不会刷新整个页面,它只替换了修改的代码,做到了页面的局部刷新。

npm install --save-dev react-hot-loader
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容