immutable在redux中的应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了immutable在redux中的应用相关的知识,希望对你有一定的参考价值。

参考技术A redux官方提供的 combineReducers 只支持原生JS的形式,所以这里要用redux-immutable提供的 combineReducers 来代替。

state成为了immutable类型,所以 mapStateToProps 也要改写成immutable的取值方法。

这就需要我们 import 专门针对immutable类型进行校验的库: react-immutable-proptypes ,使用方法基本上和普通的PropTypes一致:

减少页面无意义渲染的次数是immutable提升react效率的重中之重。

上面用到decorator,在js的babel loader里面,新增plugins: [‘transform-decorators-legacy’]。
这个模块下面还有一个不用immutable的可以对原生JS对象进行深比较的模块(pure-render-deepCompare-decorator)。

对于使用immutable.js的项目,在应用公共组件的时候,由于公共组件的内部实现一定是原生JS数据,所以我们只能传递原生JS数据到公共组件,但是如果转换成了原生JS数据,就又会出现"React.addons.PureRenderMixin提供的shouldComponentUpdate()是浅比较"问题,对此可以使用下面的高阶组件进行封装。

如何用React+Redux+ImmutableJS进行SPA开发
React移动web极致优化
immutable.js 在React、Redux中的实践以及常用API简介
Immutable.js 以及在 react+redux 项目中的实践

以上是关于immutable在redux中的应用的主要内容,如果未能解决你的问题,请参考以下文章

在 react 项目里应用 immutable 对 redux 进行处理,对 List 数据渲染的问题

Immutable.js 以及在 react+redux 项目中的实践

在react/redux中使用Immutable

在对象中设置值时 Redux 数据不重新呈现(Immutable.js)

Redux 开发工具 Chrome 扩展 Immutable.js 导致错误

Redux 中的 React ReRender