网站首页 > 基础教程 正文
Redux 是一个用于管理应用状态的 JavaScript 库,通常与 React 一起使用,但也可以与其他视图库或框架结合使用。以下是关于 Redux 的一些关键概念和基本用法:
关键概念
- Store:
存储应用的全部状态。
只有一个单一的 store,所有状态都集中管理。
通过 createStore 函数创建。
- State:
应用的状态树。
不可变,只能通过 actions 修改。
- Actions:
描述发生了什么的对象。
必须有一个 type 属性,表示 action 的类型。
可以包含其他数据作为 payload。
- Reducers:
纯函数,根据当前状态和 action 返回新的状态。
不能有副作用,如 API 请求或路由跳转。
- Dispatch:
发送 action 到 store 的方法。
调用 store.dispatch(action)。
- Selectors:
从 store 中选择特定状态的函数。
常用于提取复杂状态。
export const INCREASE = "INCREASE";
export const DECREASE = "DECREASE";
export function incActionGenerator(){
return {type: INCREASE, preload: 'increase the current value'};
}
export function decActionGenerator(){
return {type: DECREASE, preload: 'decrease the current value'};
}
import {connect} from "react-redux";
import ReduxCounter from "./ReduxCounter";
import {incActionGenerator, decActionGenerator} from "./ReduxAction";
const mapStateToProps = (state) => ({
title: state.title,
info: state.info,
value: state.value
})
const mapDispatchToProps = (dispatch) => ({
onIncClick: () => dispatch(incActionGenerator()),
onDecClick: () => dispatch(decActionGenerator())
})
const ReduxCounterContainer = connect(mapStateToProps, mapDispatchToProps)(ReduxCounter);
export default ReduxCounterContainer;
import React from 'react';
import {Button} from "react-bootstrap";
export default class ReduxCounter extends React.Component{
constructor(props){
super(props);
this.state = {value:0};
}
render(){
const {title, info, value, onIncClick, onDecClick} = this.props;
return (
<div>
<h1>{title}</h1>
<span>{info}{value}</span>
<br/>
<Button type="button" onClick={onIncClick}>加一</Button>
<Button type="button" onClick={onDecClick}>减一</Button>
</div>
)
}
}
import { Provider } from 'react-redux';
import ReduxCounterContainer from './ReduxCounterContainer';
import { createStore } from 'redux';
import changeValue from './ReduxReducer';
const store = createStore(changeValue);
function ReduxApp(){
return (
<Provider store={store}>
<ReduxCounterContainer />
</Provider>
)
}
const ReactReduxExampleOne = () => {
return (
<span>
<ReduxApp/>
</span>
);
}
export default ReactReduxExampleOne;
安装react-redux
npm install react-redux
安装redux
npm install redux
猜你喜欢
- 2024-11-24 React(6)React受控组件的使用
- 2024-11-24 React(8)React组件的生命周期
- 2024-11-24 React-EffectHook的应用简单示例
- 2024-11-24 业余时间总结了React的setState原理,有兴趣的了解下
- 2024-11-24 「react进阶」一文吃透React高阶组件(HOC)
- 2024-11-24 React-State Hook的应用简单示例
- 2024-11-24 2022 年初级 React 开发人员的 5 大面试问题
- 2024-11-24 手把手教你深入浅出React 迷惑的问题点【完整版】
- 2024-11-24 day2:前端面试题(react)
- 2024-11-24 阿里开源跨组件体系的表单渲染引擎——form-render
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)