摘要:个人对的理解其实阮一峰大神已经把诠释的很清楚,在此我只是在他的基础上加了一些我的理解。应用是一个状态机,视图与状态是一一对应的。所有的状态,保存在一个对象里面。
个人对redux的理解:
其实阮一峰大神已经把redux诠释的很清楚,在此我只是在他的基础上加了一些我的理解。
首先有几句话我觉得说的非常到位:
1、"如果你不知道是否需要 Redux,那就是不需要它。"
2、"只有遇到 React 实在解决不了的问题,你才需要 Redux 。"
3、Web 应用是一个状态机,视图与状态是一一对应的。
4、所有的状态,保存在一个对象里面。
react的核心思想就是组件,链接组件的两大特性:
1、props:如同流水一样,数据传入最到最下层组件
2、state:组件的状态
每个组件都可以有状态,简单都组件交互都可以用state完成;
以有无state可将组件分为两种:智能组件、木偶组件
木偶组件:只负责页面的展示,别人给他什么,他就展示什么
智能组件:当state状态发生改变的时候,react会跟新ui层,当组件有state的时候他可以控制自身或者子组件的显示内容
class Parent extends React.Component{ state = { children: "", }; changeChildren = () => { const children = "children"; this.setState({ children }); } render(){ return(); } }
class Children extends React.Component{ render(){ return(); } }
从上面代码可以看出组件的层级越高,state的状态可操作性越强
简单的说redux将Parent的状态脱离组件,形成一个独立的数据结构,并凌驾于所有组件之上。
redux的state有以下特点:
1、单一数据源
2、只能是只读状态
3、每一时刻对应一种视图状态
redux的action:
用户只能操作视图层,用户改变ui层的记录
redux的redcuer:
1、它是一个具有state初始值,并有改变state值的方法的纯函数
2、可接受action作为参数 改变state
3、用来生成或者改变state的纯函数
4、可拆分reducer
redux的Store:
提供改变、获取state方法的容器,接收reduer作为参数
简单的讲:
这里的Store提供的方法store.dispatch(action)相当于上诉代码的changeChildren方法
reducer方法生成state相当于上述代码定义 state={}
而store = createStore(reducer);
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/94192.html
摘要:简介创建的函数,返回一个对象,包含等方法合并多个中间件处理,在实际的前调用一系列中间件,类似于绑定和函数式编程中常见的方法,介绍官方提供的绑定库。 前言 在学习了React之后, 紧跟着而来的就是Redux了~ 在系统性的学习一个东西的时候, 了解其背景、设计以及解决了什么问题都是非常必要的。接下来记录的是, 我个人在学习Redux时的一些杂七杂八~ Redux是什么 通俗理解 h...
摘要:这对复杂问题定位是有好处的。同时,也是纯函数,与的是纯函数呼应。强约束约定,增加了内聚合性。通过约定和全局的理解,可以减少的一些缺点。约定大于配置也是框架的主要发展方向。 React+Redux非常精炼,良好运用将发挥出极强劲的生产力。但最大的挑战来自于函数式编程(FP)范式。在工程化过程中,架构(顶层)设计将是一个巨大的挑战。要不然做出来的东西可能是一团乱麻。说到底,传统框架与rea...
摘要:我们可以为元素添加属性然后在回调函数中接受该元素在树中的句柄,该值会作为回调函数的第一个参数返回。使用最常见的用法就是传入一个对象。单向数据流,比较有序,有便于管理,它随着视图库的开发而被概念化。 面试中问框架,经常会问到一些原理性的东西,明明一直在用,也知道怎么用, 但面试时却答不上来,也是挺尴尬的,就干脆把react相关的问题查了下资料,再按自己的理解整理了下这些答案。 reac...
阅读 2921·2021-11-24 09:39
阅读 3599·2021-11-22 13:54
阅读 3409·2021-11-16 11:45
阅读 2432·2021-09-09 09:33
阅读 3194·2019-08-30 15:55
阅读 1290·2019-08-29 15:40
阅读 920·2019-08-29 15:19
阅读 3396·2019-08-29 15:14