Redux

基本概念

redux是和react不同的框架。react负责渲染页面;redux是组件公共数据状态的管理,相当于一个仓库

redux适用场景

组件间传递状态数据较为复杂,应用程序规模较大的情况,如:

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

2. 某个组件需要在任何地方都可以拿到

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

4. 一个组件需要改变其他组件的状态

redux的三大原则

1. 单一数据源

2. state状态只读

3. reducer必须是纯函数

redux的工作流程

一个组件想要获取更新store中的数据,给store说要做这个动作,这时就会派发这个动作dispatch action给store,store就会去reducer中查,reducer就会返回一个新的结果给store,store就会将这个新的结果返回给组件。

 使用redux获取store中的数据(主要是工作流程中的右半部分)

安装redux,使用redux中的createStore方法创建一个store仓库。

创建一个reducer函数,在函数内部进行逻辑处理。将reducer函数传给createStore,这样store就能拿到reducer返回的最新数据。

组件中是通过getState方法获取store中的数据。

yarn add redux

import { createStore } from "redux";
const store = createStore(reducer); // 创建store仓库,传入reducer
function reducer (state = { tempValue: "tempValue" }, action) {
    return state;
}

class Demo extends Component {
    constructer () {
        super();
        this.state = store.getState(); // 组件内获取store中数据
    }
    render() {
        return (
            <div>
                <input value={this.state.tempValue} /> // 渲染
        )
    }
}

修改store中的数据

定义一个行为action,store对象会通过dispatch分发这个action给reducer,让reducer触发,根据action.type判断得到最新的state返回给store,store将state渲染到组件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值