Redux使用的基本思路


最近刚学习 Redux,这里分享一下自己对此的理解,如有错误,敬请各位指出,谢谢。


基础概念

1、Redux是一个数据层的框架(framework)

2、学习Redux需要理解以下概念:MVC(Model View Controller)、Store、State、Action、dispatch()、Reducer

以下个人对上述概念的理解 参考阮大大的文章 原文地址:Redux 入门教程(一):基本用法


Store

store(商店、仓库、库) 即是保存数据的地方

PS:整个应用只能有一个Store

创建store

Redux提供 creatStore 函数来生成 Store。

示例:

// 引入redux
import { createStore } from 'redux';  

//创建Store 需要传递一个函数fn 这里的fn是之后会提及的reducers
const store = createStore(fn);

State

state(状态、某个时刻的数据即是Store的状态)

获取状态的方法是store.getState()

Action

Action(行为、描述数据的行为,“Action 就是 View 发出的通知,表示 State 应该要发生变化了。”)

获取状态的方法是store.getState()

PS:Action是一个对象,它有一个不可缺的属性type

示例:

// type 属性必须,其它属性可自由添加
const action = {
   type: 'addTodo',  
   text: 'HTML',  
   _id: store.getState()._id  
}

  从以上示例可以看出Action还可以携带其他信息(数据),也就是说,我们可以使用Action来改变State的值,从而将我们需要的数据通过Action“运输”到 Store;
  

  实际项目中往往会需要多个Action,我们可以通过函数的形式来生成Action对象,我们把这个函数命名为 Action Creator

示例:

const ADD_TODO = 'ADD_TODO';
function addTodo(text, _id) {
  return {
    type: ADD_TODO,
    text,
    _id
  }
}
const action = addTodo('JavaScript', '007');

dispatch()

dispatch() 用来发送Action的唯一方法

示例:

// 引入 redux  createStore
import { createStore } from 'redux';
const store = createStore(fn);
    store.dispatch({
    type: 'ADD_TODO',
    text: 'HTML',
    _id:'007'
});

 结合Action Creator 以上代码可改写成:

store.dispatch(addTodo('HTML', '007'));

  从上面例子可以看出,dispatch(action)接受一个action对象为参数,并将它发送出去,Store接受Action,接受之后需要返回一个新的State(状态)。

Reducer

Reducer(处理器)

dispatch()将 action 发送出来,Store接受这个 action 并返回一个新的状态,此时创建新状态的过程就是Reduer(处理器)

Reducer是一个函数,它接受两个参数 state(当前状态值) && action,返回一个新的状态值 state。

示例:

// state 可以设置默认值
const reducer = function (state = [], action) {
  // ...
  return new_state;
};

redux 还提供了combineReducers()方法,该方法可混合多个处理器

示例:

// 引入 combineReducers  createStore
import { combineReducers, createStore } from 'redux';

function todoList(state = [], action) {
      //...
      return new_state;
  }

function showType(state = 'all',action) {
      //.. 
      return new_state
}

//redux 混合处理器
const reducers = combineReducers({
      todoList,
      showType,
});

var store = createStore(reducers);

Redux使用的基本思路

1) 定义actions.js,其中包括actions type(字符串常量)、Actions creators(返回一个json对象的函数,返回的这个json对象就是actions)

2) 定义reducers.js,包含多个reducer:(state = defaultState, action)=>{……return new_state};最后通过 combineReducers() 将多个reducer整合到一起 

3) 创建 store,  const store = createStore(Reducers) 

4) 在入口文件中render(<组件> , rootElement);

5) React最外层组件中,在事件的回调函数中dispatch(actions creators(data));通过export default connect(select)(App) 绑定Redux与React 

暂时这么多,后续会补充和改错。

转载于:https://www.cnblogs.com/xxy52110/p/6487684.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Redux 是一个用于 JavaScript 应用程序的可预测状态容器,它可以帮助开发者更好地管理应用程序的状态。Redux 的核心思想是将应用程序的状态存储在一个单一的对象中,并使用纯函数对其进行修改。以下是 Redux基本用法: 1. 安装 Redux 可以通过 npm 或 yarn 进行安装,如下所示: ``` npm install redux ``` 或 ``` yarn add redux ``` 2. 创建 store 在 Redux 中,store 是一个保存应用程序状态的对象。可以通过 createStore 函数创建 store,如下所示: ``` import { createStore } from 'redux'; function reducer(state, action) { // 处理 action 并返回新的 state } const store = createStore(reducer); ``` 在上面的代码中,reducer 是一个纯函数,它接收当前的 state 和 action,并返回新的 state。store 会在应用程序中保存这个 state。 3. 定义 action 在 Redux 中,action 是一个描述 state 变化的普通对象。例如,以下是一个增加计数器值的 action: ``` const incrementAction = { type: 'INCREMENT', payload: 1, }; ``` 在这个例子中,action 的 type 是 INCREMENT,payload 是增加的数量。 4. 分发 action 使用 store.dispatch 函数可以将 action 发送到 reducer 中处理,并返回新的 state。 ``` store.dispatch(incrementAction); ``` 5. 订阅 store 使用 store.subscribe 函数可以监听 store 中 state 的变化,并在变化时执行相应的操作。 ``` store.subscribe(() => { console.log(store.getState()); }); ``` 在上面的代码中,每当 state 发生变化时,都会将当前的 state 打印到控制台中。 以上就是 Redux基本使用方法。需要注意的是,Redux 可以与 React 等前端框架结合使用,以实现更好的状态管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值