本文在上一篇(https://blog.51cto.com/zhuxianzhong/2144064)的基础上重点关注redux-devtools-extension这款调试工具的使用。另外,撰写本文的原因其一是,redux-form库官方提供的一系列示例中,在创建store时(即在store.js)中都使用了如下创建方式:
        const reducer = combineReducers({form: reduxFormReducer, // mounted under "form"
});
const store = (window.devToolsExtension? window.devToolsExtension()(createStore): createStore)(reducer);export default store;
    为什么在一般的redux教程中都使用如下写法:const store=createStore(rootReducer);而上面却使用另外一种形式?window何以有devToolsExtension这个属性?

基于这些原因,在我打算总结的这个系列短文中干脆也顺便分析一个这个问题。

说明

在阅读本文前,请注意区别两个不同的框架:redux-devtools和redux-devtools-extension。

其中,redux-devtools(https://www.npmjs.com/package/redux-devtools)使用了侵入式技术,是你的集成开发环境下开发React-Redux应用的一个强大的开发工具。这个东西能够使用monitor技术实时监听您的Store中的数据情况。在应用前,需要专门安装此模块。

不过,如果你不想安装上述模块从而不致于其侵入你的项目之中,那么,Redux DevTools Extension是一个很好的替代选择。这是一个浏览器插件,它支持Chrome,Firefox以及360浏览器等,它提供了大部分常用的监听器用于配置你的项目,不需要安装任何模块(其实其提供了安装选项),配置也很简单。

本文专注于介绍redux-devtools-extension。

【注意】当前版本中(Version 2.7+),window.devToolsExtension被重命名为window.REDUX_DEVTOOLS_EXTENSION

window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__

也就是说,上面redux-form官方提供的代码中都使用了较早版本的redux-devtools-extension。
但是,在以后的React-Redux项目中不再建议使用window.devToolsExtension方式了。

安装redux-devtools-extension

有关安装redux-devtools-extension插件,针对不同的浏览器,官方提供了多种安装方案(https://github.com/zalmoxisus/redux-devtools-extension)。

由于我使用的是Google Chrome浏览器,所以选择从Chrome网上应用店中安装插件的方式,商店地址是:https://chrome.google.com/webstore/category/extensions。进入后,在左上角的搜索框内输入redux-devtools-extension后便可很容易地搜索到此插件。

在Redux应用中的最基本的使用方式如下面代码所示:

const store = createStore(reducer, /* preloadedState, */window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());

在此,第二个参数preloadedState是可选的,用于设置 state 初始状态,一般是省略掉的。第三个参数以增强器(enhancer),也称为第三方中间件(这种称呼更合适一些吧),的方式出现。注意,这种书写要求Redux版本在3.1.0或者以上才行。

有关此插件的更复杂的应用形式,还是请参考文后提供的官方网址吧。

浏览器中简单调试应用

在webstorm中通过内置终端Terminal运行npm start启动redux-form第一个示例应用。启动后,切换到Google Chrome浏览器并打开右上角的插件图标,然后在左边的表单中操作,并观察在随后弹出的右边调试窗中的信息,请参考下图:

因为是初步尝试使用,所以没有对于这个调试窗口中信息作全面分析,请原谅。但是,从上图可以推知,这种针对store中信息的变化(随着表单中的不断操作)的调试是非常有亲和力的。这从github上至今高达6783星(对于像React这种颇具挑战性的技术栈选择者来说,这已经是一个相当高的星数了)的关注度也充分认证了这一点。

参考资料

1.https://www.npmjs.com/package/redux-devtools
2.https://blog.csdn.net/achenyuan/article/details/80884895
3.https://github.com/zalmoxisus/redux-devtools-extension

转载于:https://blog.51cto.com/zhuxianzhong/2146271

redux-form(V7.4.2)笔记(二)相关推荐

  1. ASP.NET MVC 2 学习笔记二: 表单的灵活提交

    ASP.NET MVC 2 学习笔记二:  表单的灵活提交 前面说到有做到公司内部的一个请假系统,用的是ASP.NET MVC 2+Entity Framework.虽然EF(Entity Frame ...

  2. CSS基础班笔记(二)

    web前端剑法之css ??web前端剑法之css 地址 ??CSS基础班笔记(一) https://blog.csdn.net/Augenstern_QXL/article/details/1155 ...

  3. 码匠社区学习笔记(二)

    所需资料 教程视频地址 Bootstrap spring模板 elasticsearch中文社区(想模仿的效果) 码云aAuth 获取授权用户的资料 github第三方授权文档 码匠社区学习笔记(二) ...

  4. springmvc学习笔记二:重定向,拦截器,参数绑定

    springmvc学习笔记二:重定向,拦截器,参数绑定 Controller方法返回值 返回ModelAndView controller方法中定义ModelAndView对象并返回,对象中可添加mo ...

  5. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  6. 企业级博客项目笔记(二)

    企业级博客项目笔记(二) 一.数据持久化 1.JPA简介 JPA(Java Persistence API)是用于管理Java EE 和Java SE 环境中的持久化,以及对象/关系映射的Java A ...

  7. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  8. oracle直查和call哪个更快,让oracle跑的更快1读书笔记二

    当前位置:我的异常网» 数据库 » <>读书笔记二 <>读书笔记二 www.myexceptions.net  网友分享于:2013-08-23  浏览:9次 <> ...

  9. 【Visual C++】游戏开发笔记二十七 Direct3D 11入门级知识介绍

    游戏开发笔记二十七 Direct3D 11入门级知识介绍 作者:毛星云    邮箱: happylifemxy@163.com    期待着与志同道合的朋友们相互交流 上一节里我们介绍了在迈入Dire ...

  10. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

最新文章

  1. MTD的坏块管理(一)-快速了解MTD的坏块管理
  2. asp与网站安全的初步构想(1)——操作系统安全
  3. Internet Explorer 8 Beta 2十大看点
  4. VC++ 单文档的状态栏编程、CEditView类实现编辑器功能、编辑框显示行号列号
  5. 如何来玩MNIST数据集?
  6. 移动app崩溃原因及场景
  7. ASP.NET 应用程序遭遇Server Application Unavailable问题的解决的方法
  8. 谷歌浏览器开发调式工具文档
  9. HNCU1324:算法2-2:有序线性表的有序合并(线性表)
  10. srs2.0安装问题
  11. RabbitMQ-理解消息通信-虚拟主机和隔离
  12. matlab高等数学实验答案,MATLAB高等数学实验-(第2版)
  13. 自动设置为兼容模式html5,详细教你将IE浏览器设置为兼容模式的设置方法
  14. js 计算个人所得税
  15. 职中选什么专业好_职中选什么专业最有前途
  16. Java开发面试简历这么写,命中率达70%
  17. HDU 5378 树上的概率DP Leader in Tree Land
  18. 过年各路红包玩法总结,都是上亿的项目!!!
  19. 180701 icon文件查找与转换网站
  20. 宇宙的精华与大数据的失败

热门文章

  1. python下载网页中的pdf文件_【Python】Python的urllib模块、urllib2模块批量进行网页下载文件...
  2. mysql5.1编译安装centos7_CentOS7下 Nginx1.13.5 + PHP7.1.10 + MySQL5.7.19 源码编译安装
  3. transformcontrols可以用在group上吗_电缆沟盖板可以用在水沟上吗
  4. django html直接调用的方法,如何在Django中使用AJAX从html正确调用函数/url?
  5. PHP项目部署在tomcat,在Tomcat中部署Web项目的操作方法(必看篇)
  6. office2010 启动man_Office2010打开慢速度怎么办?
  7. tmux与python虚拟环境问题
  8. 小波变换输出变量详解
  9. mysql主从复制运维_Mysql主从复制配置
  10. linux手机远程桌面连接软件下载,HomeCenter手机远程桌面下载_HomeCenter手机远程桌面官方下载-太平洋下载中心...