当前位置: 首页 > Web前端 > HTML5

React开发教程(九)Redux基础

时间:2023-04-05 13:30:10 HTML5

Readux基础什么是redux?简单的回答就是它是一个管理数据的全局对象,但是它有一个单一状态树的概念。所谓单状态树就是“所有的状态都以对象树的形式存储在一个单一的store中”。Page中的所有状态或数据,都应该用这个状态树的形式来描述;页面上的任何改变都应该先改变状态树,然后再以某种方式在页面上实现。或者换句话说,我们要做的核心工作就是用一个单一的对象来描述页面的状态,然后通过改变这个对象来操作页面。使用场景无论是移动端还是PC端,当你使用React或者Vue开发一个组件化的SPA程序时,组件之间共享数据(状态)本身就是一个问题。由于是共享的,所以不需要每个组件。每个系统都需要一个功能来管理多个组件使用的公共信息,这就是Redux的用武之地。核心概念Action:它是将数据从应用程序传输到商店的有效负载。通俗的说就是描述了一个action比如:你女朋友给你发了一条消息,消息的内容是,“去帮我清空购物车”,那么这个内容就是redux中action的意思。Reducer:Action只描述了某事发生的事实,并没有指定应用程序如何更新状态。而这正是reducer所做的。它通常被称为规则。例如:你的女朋友给你发了一条消息,但它只是一条消息。你是执行人。他不在乎你如何执行它。那么你执行的进程就是一个reducer。为什么叫规则呢?,因为你执行的过程是一个规则。你得先有钱,然后登录他的账户,然后结算Store:Store是链接Reducer和action的对象。Store有以下职责:维护应用程序的状态;提供getState()方法获取状态;提供dispatch(action)方法来更新状态;通过subscribe(listener)注册监听器;redux--save,但是在React中使用Redux肯定会用到react-redux这个工具,所以这里安装好之后,执行npminstallreact-redux--save。casecode//定义计算规则,即reducerfunctionBoyFriend(state={car??t:'10itemsworth100000000',relationship:'lover'},action){switch(action.type){case'JIEZHANG':state.cart="结账完成,当前购物车为空"returnstatecase'FENSHOU':state.relationship='SingleDog'returnstatedefault:returnstate}}//根据计算规则生成storeletstore=createStore(BoyFriend)//定义数据(即状态)变化后的调度规则store.subscribe(()=>{console.log('currentstate',store.getState())})//触发数据变化store.dispatch({type:'JIEZHANG'})store.dispatch({type:'JIEZHANG'})store.dispatch({type:'FENSHOU'})上一篇:React开发教程(八)React组件通信下一篇:React开发教程(十)redux结合与反应