美文网首页
深入了解下React、Redux、React-Redux

深入了解下React、Redux、React-Redux

作者: cctosuper | 来源:发表于2019-05-30 17:53 被阅读0次

React:负责组件的UI界面渲染;
Redux:数据处理中心;
React-Redux:连接组件和数据中心,也就是把React和Redux联系起来。

React

React主要就是用来实现UI界面的,是一个专注与view层的框架。对于一些小项目,如果数据的交互不是很多,完全可以只使用React就能很好的实现。
在传统的页面开发模式中,需要多次的操作DOM来进行页面更新,而DOM操作会造成页面的性能问题。React可以通过Virtual DOM来减少对DOM的操作来提示性能。

Virtual DOM

当有数据需要更新时,会先计算Virtual DOM ,并和上一次的Virtual DOM做对比,只会将需要变化的部分批量的更新到真实DOM上。
根据react diff策略:

  • Web UI中的DOM节点跨层级的移动操作特别少,可以忽略不计(尽量避免);对树进行分层比较,两棵树只会对同一层级的节点进行比较;
  • 拥有相同类型的两个组件将会形成相似的树形结构,反之亦然;不是同一类型的组件,将替换整个组件下的所有子节点;
  • 对于同一层级的一组子节点,它们可以通过唯一id进行区分。

    React diff算法流程

React生命周期

react生命周期

redux

Redux是一种架构模式,是由flux发展而来的。

Redux三大原则:

  • 唯一数据源
  • 状态制度
  • 改变数据只能通过纯函数完成

核心api:store,reducer,action

store

Redux的核心是store,它由Redux提供的 createStore(reducer, defaultState) 这个方法生成,生成三个方法,getState(),dispatch(),subscrible()。

  • getState():存储的数据,状态树;
  • dispatch(action):分发action,并返回一个action,这是唯一能改变store中数据的方式;
  • subscrible(listener):注册一个监听者,store发生变化的时候被调用。

reducer

reducer是一个纯函数,它根据previousState和action计算出新的state。指定了应用状态的变化如何响应action并发送到store的。
reducer(previousState,action)

action

action本质上是一个JavaScript对象,其中必须包含一个type字段来表示将要执行的动作,其他的字段都可以根据需求来自定义。数据的唯一来源,描述了有事情发生这一事实。

const ADD_TODO = 'ADD_TODO'
{
  type: ADD_TODO,
  text: 'Build my first Redux app'
}
三者之间的交互

React-Redux

Redux 本身和React没有关系,只是数据处理中心,是React-Redux让他们联系在一起。
React-rRedux提供两个方法:connect和Provider。

connext

connect连接React组件和Redux store。connect实际上是一个高阶函数,返回一个新的已与 Redux store 连接的组件类。

const VisibleTodoList = connect(
  mapStateToProps,
  mapDispatchToProps
)(TodoList)
  • mapStateToProps:从Redux状态树中提取需要的部分作为props传递给当前的组件。
  • mapDispatchToProps:将需要绑定的响应事件(action)作为props传递到组件上。

Provider

Provider实现store的全局访问,将store传给每个组件。

原理:使用React的context,context可以实现跨组件之间的传递。 三者之间的工作流程

相关文章

  • react-redux性能优化之reselect

    在React-redux深入理解中,我们知道了 react-redux 是如何将 React 和 Redux 进行...

  • redux的简单应用

    1、安装 redux和react-redux: npm i redux react-redux --save-de...

  • react-redux

    使用react-redux,可以更方便的使用redux开发 先install react-redux使用react...

  • react-redux

    一、什么是react-redux React-Redux是Redux的官方React绑定。 它允许您的React组...

  • React(五)

    React-redux(三):connect和mapStateToProps React-redux(四):map...

  • 深入了解下React、Redux、React-Redux

    React:负责组件的UI界面渲染;Redux:数据处理中心;React-Redux:连接组件和数据中心,也就是把...

  • react-redux

    redux 全局状态管理 react-redux 优化模块 优化redux的使用过程 通过react-redux ...

  • react-redux简介(二)源码解析

    写在开头 前置知识内容,react、react-redux。 react-redux文档:https://www....

  • 20.redux使用

    react-redux 使用一个react-redux 的库使得redux的使用更简洁,它提供了provider和...

  • React状态管理

    React-redux React-redux是React用来绑定redux的,其中不得不提及的是Provider...

网友评论

      本文标题:深入了解下React、Redux、React-Redux

      本文链接:https://www.haomeiwen.com/subject/ytgvtctx.html