flux和redux

数据流:

1.数据流是行为和响应的抽象.

2.react使用的是单数据流的方式.

action:行为和动作

controller:控制器

model:模型

view:视图

单机事件会调用一个方法,单机就是行为,action就是响应,代码就是controller,

flux介绍:

1.Flux是一种架构思想,专门解决软件的结构问题,它跟MVC架构是同一类东西,但是更加简单和清晰.

2.首先,Flux将一个应用分成四个部分:

(1)View:视图层

(2)Action(动作):视图层发出的消息(比如mouseClick)

(3)Dispatcher(派发器):用来接收Actions、执行回调函数.

(4)Store(数据层):用来存放应用的状态,一旦发生变动,就提醒Views要更新页面.

redux介绍:

redux介绍:

1.redux和flux非常相似,是flux的一个实现方法,但是还存在一些差异.

(1) Web应用是一个状态机,视图与状态是一 一对应的。所有的状态,保存在一个对象里面.

原理:

1.当用户触发了UI里的action时,action将被送到reducer方法里.

2.reducer就会更新数据层.

3.react数据也就是state(state包含在store里).

4.state再去渲染UI.

Redux可以用这三个基本原则来描述:

1.单一数据源

整个应用的state被储存在一棵object tree中,并且这个object tree只存在于唯一 一个store中.

2.State是只读的

唯一改变state的方法就是触发action,action是一个用于描述已发生事件的普通对象.

3.使用纯函数来执行修改

为了描述action如何改变staet tree,你需要编写reducers.

redux实用场景:

1.多交互,多数据源。

(1)用户的使用方式复杂.

(2)不同身份的用户有不同的使用方式(比如普通用户和管理员)

(3)多个用户之间可以协作.

(4)与服务器大量交互,或者使用了WebSocket

(5)View要从多个来源获取数据

2.从组件角度

(1)某个组件的状态,需要共享.

(2)某个状态需要在任何地方都可以拿到.

(3)一个组件需要改变全局状态.

(4)一个组件需要改变另一个组件的状态.

方法详细讲解-store

1.redux 主要由三部分组成:store、reducer、action

2.store是一个对象,有四个主要方法:

(1)dispatch:用于action的派发——在createStore中可以用middleware中间件对dispatch进行改造,比如action传入dispatch会立即触发reducer,有些时候我们不希望它立即触发,而是等待异步操作完成之后再触发,这时候用redux-thunk对dispatch进行改造,以前只能传入一个对象,改造完成后可以传入一个函数,在这个函数里我们手动dispatch一个action对象,这个过程是可控的,就实现了异步.

(2)subscribe:监听state的变化——这个函数再store调用dispatch时会注册一个listener监听state变化,当我们需要知道state是否变化时可以调用,它返回一个函数,调用这个返回的函数可以注销监听.

(3)getState:获取store中的state——当我们用action触发reducer改变了state时,需要再拿到新的state里的数据,毕竟数据才是我们想要的。getState主要在两个地方需要用到,一是在dispatch拿到action后store需要用它来获取state里的数据,并把这个数据传给reducer,这个过程是自动执行的,二是在我们利用subscribe监听到state发生变化后调用它来获取新的state数据,如果做到这一步,说明我们已经成功了.

(4)replaceReducer:替换reducer,改变state修改的逻辑.

3.action:

action是一个对象,其中type属性是必须的,同时可以传入一些数据,action可以用actionCreator进行创造,dispatch就是把action对象发送出去.

4.reducer:

(1)reducer是一个函数,它接受一个state和一个action,根据action的type返回一个新的state,根据业务逻辑可以分为很多个renducer,然后通过combineReducers将它们合并,state树中有很多对象,每个state对象对应一个reducer,state对象的名字可以在合并时定义.

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React FluxRedux是两种常用的JavaScript框架,用于构建更简洁、可维护的前端应用程序。 React Flux是Facebook在2014年首次引入的一种架构模式,它通过单向的数据流来管理应用程序的状态。在React Flux中,数据流沿着特定的路径从"action"(用户交互或其他触发事件)开始,经过"dispatcher"(分发器)传递给"stores"(状态和逻辑的存储器),然后通过"views"(视图组件)展示给用户。这种单向数据流的架构使得应用程序的状态更加可控和可预测,容易调试和维护。 Redux是一种基于Flux的架构模式,它将数据流的思想推向了极致。Redux通过一个单一的"store"(存储器)来管理整个应用程序的状态,并通过纯函数的方式来处理状态的变化。Redux的核心概念是"action"(动作)和"reducer"(处理器)。当用户触发某些操作时,会产生一个action对象,这个对象描述了操作的类型和相关的数据。然后,通过reducer函数对这个action进行处理,生成一个新的状态并返回给store。通过这种方式,Redux实现了可预测性、可测试性和易于调试的特点。 与React Flux相比,Redux的设计更加简单和灵活,可以轻松应对大型应用程序的状态管理。Redux还引入了中间件的概念,用于处理异步操作和复杂的业务逻辑。但是,Redux的简洁也带来了额外的学习成本,对于初学者来说可能需要一定的时间来理解和掌握。 综上所述,React FluxRedux都是帮助开发者更好地管理状态的框架,各有其特点和适用场景。开发者可以根据项目的需求和自身的经验选择使用其中一种或者结合两者来构建高效的前端应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值