当前位置:网站首页>redux工作流程+小例子的完整代码
redux工作流程+小例子的完整代码
2022-06-25 22:13:00 【烦啦烦啦】
创建项目:
1.sudo npm install -g create-react-app
2.create-react-app redux
index.js
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import {
Provider } from 'react-redux';
import store from './store';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<Provider store={
store}>
<App />
</Provider>
)
App.js
import React,{
Component} from 'react';
import * as Action from './store/action';
import {
connect} from 'react-redux';
class App extends Component {
constructor(props) {
super(props);
}
render() {
const {
value} = this.props;
return (
<div>
<input value={
this.props.value} style={
{
marginRight:'5px'}} />
<button onClick={
() => this.props.add(value)} style={
{
marginRight:'5px'}}>+</button>
<button onClick={
() => this.props.sub(this.props.value)}>-</button>
</div>
)
}
}
const mapStateToProps = (state) => ({
value:state.AppValue.value
})
const mapDispatchToProps = (dispatch) => ({
//加一
add(data) {
dispatch(Action.Add(data))
},
//减一
sub(data) {
dispatch(Action.Sub(data))
}
})
export default connect(mapStateToProps,mapDispatchToProps)(App);
action.js
import * as ActionTypes from "./actionType";
//加一
export const Add = (data) => {
var addData = data + 1;
return {
type:ActionTypes.ADDVALUE,
data:addData
}
}
//减一
export const Sub = (data) => {
var subData = data - 1;
return {
type:ActionTypes.SUBVALUE,
data:subData
}
}
actionType.js
export const ADDVALUE = 'add';
export const SUBVALUE = 'sub';
reducer.js
import * as ActionTypes from './actionType';
const reducer = (state = {
},action) => {
switch(action.type) {
case ActionTypes.ADDVALUE: {
return {
...state,value:action.data}
}
case ActionTypes.SUBVALUE:{
return {
...state,value:action.data}
}
default: {
return state;
}
}
}
export default reducer;
store.js
import {
combineReducers, createStore} from 'redux'
import AppReducer from './store/reducer'
const reducer = combineReducers({
AppValue:AppReducer
})
const initState = ({
AppValue: {
value:12
}
})
export default createStore(reducer,initState)
边栏推荐
猜你喜欢
随机推荐
yolov5 提速多GPU训练显存低的问题
Several common rich text editors
P3052 [USACO12MAR]Cows in a Skyscraper G
redis之集群
猕猴桃酵素的功效_过路老熊_新浪博客
SMT贴片加工pcba立碑现象的原因和解决方法
Recherche documentaire (3): examen des modèles de prévision de la consommation d'énergie des bâtiments fondés sur les données
【ROS进阶篇】第一讲 常用API介绍
兆欧表电压档位选择_过路老熊_新浪博客
10.4.1 data console
【微信公众号H5】 生成带参数进入公众号关注页的二维码 监听用户关注公众号事件 自定义菜单栏 (服务端)
14.1.1、Promethues监控,四种数据类型metrics,Pushgateway
Thrift getting started
迅为RK3568开发板使用RKNN-Toolkit-lite2运行测试程序
Notes on the method of passing items from the spider file to the pipeline in the case of a scratch crawler
Search rotation array ii[Abstract dichotomy exercise]
关于scrapy爬虫时,由spider文件将item传递到管道的方法注意事项
详细讲解局部变量、全局变量、静态变量三种类型
关于二分和双指针的使用
mysql 主从复制








