React,关于redux的一点小见解

  最近项目做多页面应用使用到了,react + webpack + redux + antd去构建多页面的应用,本地开发用express去模拟服务端程序(个人觉得可以换成dva).所以在这里吐槽一下我自己对于redux的一些见解。

  Redux是状态管理的服务,可以当作是mvc中的controller层,你也可以把它认为是mvvm中vm层。虽然它本身受到Flux的影响很大,但是它的核心概念缺很简单,就是Redue也就是ES5中Array.prototype.reduce,这个reduce用于合并数组的元素,例:

  

  Redux认为,一个应用程序中,所有的应用模块之间需要共享访问的数据,都应该在Store的State里面。这点和React的state和props的概念是一致的。外面的props尽量不去改变,而改变的只是内部的状态state,而有shouldComponentUpdate这个生命周期函数,我们可以优化react.

  但是有一个原则是没有改变的,就是在你不知道你是否需要redux的时候,你肯定是不需要它。就像Flux的作者说的那样,Flux就像眼镜,你会知道你在什么时候需要它。

  下面介绍一些本人对于redux的一些使用经验:

  (1)你最好保证State的没个节点都是immutable的,这样确保在消费State的时候只需要进行简单的引用就可以了。从而避免Deep Equal 的遍历过程。也就是说你的state最好是键值的对象形式,避免数组形式的非state最底层值的形式。

  (2)reducer为纯函数,如果判断太多,可以使用combineReducers(),去组合reducer,分离reducer

  (3)合理管理你的state.并不需要所有的数据都在State里面,虽然这也是可以,总之一句话,合适你的才是最好的,适用需要的代码才是最好的。

  (4)建议所以的asyncAction都应该被管理。这很大程度上,可以提高用户体验。建议适用Promise async/await 去实现异步的管理。

  

时间: 2024-10-16 20:19:53

React,关于redux的一点小见解的相关文章

React Native(十四)——Slider小见解

最近我们rn版的App快要内测了,小伙伴们都在积极的改bug,于是在其中就遇到了关于Slider的部分小知识,特地记录自己用到的部分属性,也许恰好会帮助到用到该组件的你: 属性罗列(https://reactnative.cn/docs/0.51/slider.html#content): View props- 继承View的所有属性: 1.disabled:如果为true,用户就不能移动滑块;默认为false; 2.value:滑块的初始值.这个值应该在最小值和最大值之间.默认值是0 仅IO

台式机和笔记本作为服务器的区别一点小见解和认识?

假设现在有一个网站,如果将笔记本电脑作为服务器的话,也就是说网站的发布以及网站的数据库和各种资料是放在笔记本电脑上的:而如果是台式机的话,网站的发布以及网站的数据库和各种资料是放在台式机的机箱里的: 对于笔记本电脑,笔记本本身就自带有硬盘容量:而对于台式机,它的硬盘容量是在机箱里的,这个做到了操作与存储分开的目的,也就是说如果是作为服务器的话,最好还是用台式机的机箱,这样当这台机箱不安装台式机时就是一个独立的系统,可以通过ip被外界访问:而如果是笔记本就不一样了,这个是没有办法区分开来的,当你一

初入计算机世界:对机器语言的理解(一点小见解)

计算机语言:二进制,机器码语言 电脑的工作原理:计算机二进制算法 那么什么是二进制?十进制?八进制?十六进制? 进制 原理 位权 位上最大数 进1后的 结果 二进制 逢二进一 个位,二位,四位,八位 1(0~1) 11 100(二进制) 十进制 逢十进一 个位,十位,百位,千位 9(0~9) 19 20(十进制) 八进制 逢八进一 个位,八位,六十四位, 7(0~7) 17 20(八进制) 十六进制 逢十六进一 个位,十六位,256位, 15(0~F) 1F 20(十六进制) 计算机只会二进制的

React、Redux 和 Bootstrap

使用 React.Redux 和 Bootstrap 实现 Alert 今天,我们来学习使用 React.Redux 和 Bootstrap 实现Alert. 例子 这个例子实现了弹出不同类型信息的功能,这些信息默认会在5秒后消失,你也可以手动点击使其消失.如果你在服务端有信息要提示,还可以通过 Redux 的单一数据源传到客户端在渲染页面时显示出来. 源代码: https://github.com/lewis617/react-redux-tutorial/tree/master/r2-bs-

【前端,干货】react and redux教程学习实践(二)。

前言 这篇博文接 [前端]react and redux教程学习实践,浅显易懂的实践学习方法. ,上一篇简略的做了一个redux的初级demo,今天深入的学习了一些新的.有用的,可以在生产项目中使用的前端架构,我将尽量以最简单的语言描述,如果有童鞋看不懂,也可以私下问我. 复习 前一节我们已经知道,一个redux应用,主要有几个概念,它们的共同作用都是管理一个全局state,使react组件的state集中处理,想一下你在写react组件的时候,组件的state总是或多或少与父级组件有关联,一般

做预解释题的一点小方法和小技巧

在JavaScript中的函数理解中预解释是一个比较难懂的话题.原理虽然简单,寥寥数言,但其内涵却有深意,精髓难懂.如何在轻松活跃的头脑中将它学会,现在针对我在学习中的一点小窍门给大家分享一下,希望能给大家一些帮助: 万事需遵循"原理"--"预解释"无节操和"this"指向:(可先看例题解析然后结合原理进行学习) (感谢蕾蕾老师给归纳的预解释无节操原理:) 如果函数传参数则先于以下执行,就相当于在函数私有作用域下var了一个变量:根据作用域原理,

新闻发布的一点小总结

经过一段时间的学习,完成了新闻发布的基础功能,进行一点小总结,方便日后回顾.下面是我的一点小总结,不足之处请勿见笑... 我们想要完成一个新闻发布,首先要使其能够成功发布,并且让它能够实现添加.删除.修改.查询.上传.下载等功能.我们还调用AJAX功能查看输出为XML.JSON格式的新闻内容.为完成以上功能,我们首先要进行jdk.tomcat.eclipse的安装和配置.1.各软件的安装和配置1.1.jdk的安装和配置: 1.1.1.下载jdk:下载地址:http://www.oracle.co

【搬运工】一点小收集

1.几种基础算法. 2.数学之美. 3.贝叶斯方法. 转自互联网,链接背后都是故事,水深,都是鱼. 敬意且谨以自勉,长途漫漫,任重道远. 以上. [搬运工]一点小收集,布布扣,bubuko.com

Lichee (六) 配置内核时的一点小优化

我们在分析<Lichee(二) 在sun4i_crane平台下的编译 >的时候,居然没有一个步骤是在配置内核 make ARCH=arm menuconfig 仔细的读过的代码的会发现,在build_kernel有这么一段话 if [ ! -e .config ]; then echo -e "\n\t\tUsing default config... ...!\n" cp arch/arm/configs/sun4i_crane_defconfig .config fi