当前位置: 首页 > wzjs >正文

网站建设结课小论文广州软件开发兼职

网站建设结课小论文,广州软件开发兼职,百度 搜索到手机网站,全网营销平台有哪些redux系列文章目录 第一章 简单学习redux,单个reducer 第三章 redux和react-redux,reduxjs/toolkit依赖结合使用 第四章 react-redux,reduxjs/toolkit依赖,学习 第五章 两张图告诉你redux常使用的api有哪些 前言 前面我们学习到的是单…

redux系列文章目录

第一章 简单学习redux,单个reducer

第三章 redux和react-redux,@reduxjs/toolkit依赖结合使用

第四章 react-redux,@reduxjs/toolkit依赖,学习

第五章 两张图告诉你redux常使用的api有哪些

前言

前面我们学习到的是单reducer的使用;要知道redux是个很强大的状态存储库,可以支持多个reducer的使用。

combineReducers

‌combineReducers‌是Redux中的一个辅助函数,主要用于将多个子reducer合并成一个根reducer。这个函数接收一个对象,对象的键是子reducer的名称,值是子reducer函数。合并后的reducer可以调用各个子reducer,并将它们的结果合并成一个state对象。

代码

准备工作
基于上一章代码写新reducer,新增src/pages/users/index.js文件;新增src/redux/userReducer.js文件

store.js

import { createStore, combineReducers } from 'redux';
import counterReducer from './counterReducer'
import userReducer from './userReducer';//组合多个reducer,本章核心代码
const rootReducer = combineReducers({countNum: counterReducer,userList: userReducer
})let store = createStore(rootReducer);export default store

userReducer.js


function userReducer(state =[], action) {switch (action.type) {case 'ADDUSER':state.push(action.payload)return state;case 'DECUSER':// state.slice(0, -1)return state.slice(0, -1); ;default:return state;}
}   export default userReducer;

users/index.js

import React, { Fragment, useEffect, useState } from 'react'
import store from '../../redux/store'
export default function Users() {const [currenUsesName, setCurrenUsesName] = useState("")const [users, setUsers] = useState([])store.subscribe(() => {const { userList } = store.getState()setUsers((olduser)=>{return [...userList]})})return (<Fragment><div>输入新用户信息:<br /> 姓名: <input type="text" onChange={(e) => { setCurrenUsesName(e.target.value) }} />&nbsp;<button disabled={String(currenUsesName).trim().length === 0} onClick={() => {store.dispatch({ type: 'ADDUSER', payload: { name: currenUsesName, age: 18 } })}}>新增用户</button>&nbsp;<button disabled={users.length === 0} onClick={() => {store.dispatch({ type: 'DECUSER' })}}>减少用户</button><ul>{users?.map((item, index) => {return <li key={index}>姓名:{item.name} &nbsp; age:{item.age}</li>})}</ul></div></Fragment>)
}

最后,将写好的users/index.js引入couter组件中一起展示。可以得到下图效果

效果

多个reducer的效果

总结

上一章中,是单个reducer,这时候监听的store.getState(),是直接的state值。
本章中,是多个reducer,这时候监听的store.getState(),是object对象。

counterReducer

counterReducer(state = 0, action),counterReducer是第一个参数,是默认值;state可以是any类型,action是接收对象,默认接收是两个值{type:“”,payload};
payload可以传可不传

store.dispatch

dispatch()其也是接收对象,其对象也是{type:“”,payload};payload可以传可不传


文章转载自:

http://iCWjLVs9.LjLLt.cn
http://JnUpspRm.LjLLt.cn
http://oVW8DHlY.LjLLt.cn
http://FrhpHIc3.LjLLt.cn
http://chO47pNC.LjLLt.cn
http://29kcMuuf.LjLLt.cn
http://3jR3XBxZ.LjLLt.cn
http://i5cmcXtr.LjLLt.cn
http://IvEkQRn1.LjLLt.cn
http://tAuQxK8f.LjLLt.cn
http://n1ELYJ6R.LjLLt.cn
http://JlvbJl97.LjLLt.cn
http://NZDPdXBj.LjLLt.cn
http://91eYhfZC.LjLLt.cn
http://uiDA9Uvw.LjLLt.cn
http://c7qSdbUr.LjLLt.cn
http://VpaKmGxp.LjLLt.cn
http://2SXajyzS.LjLLt.cn
http://AjU7XEdV.LjLLt.cn
http://mTdqzuPh.LjLLt.cn
http://3bVjYbqy.LjLLt.cn
http://wtVn4IiP.LjLLt.cn
http://Se1LmA2L.LjLLt.cn
http://bpeVeFxv.LjLLt.cn
http://v6OHMenv.LjLLt.cn
http://3Wycs4zN.LjLLt.cn
http://8QCgcxj6.LjLLt.cn
http://Umr7mO30.LjLLt.cn
http://RyQ9sPJG.LjLLt.cn
http://kLLJl5ju.LjLLt.cn
http://www.dtcms.com/wzjs/730780.html

相关文章:

  • 专业网站托管的公司深圳专业返利网站开发
  • wordpress 全宽轮播关键词优化过程
  • 手机wap网站特效网站 内容 不收录 权重 1
  • 网站推广seo优化商业网站网址
  • 西安市做网站的公司网站建设及优化心得体会
  • 中土南方建设有限公司网站实训做网站收获
  • phpok做网站教程网站制作 长沙
  • 工信部 网站备案 上传电子成都网站建设详细内容
  • 万网站底部添加备案号免费做微信小程序
  • 淄博网站推广优化口碑营销例子
  • 用jquery做网站WordPress渗透思路
  • 学校网站建设专业公司横翻网站模版
  • 网站尺寸广安网站制作设计
  • 苗木网站建设建设网站的企业专业服务
  • 马蜂窝网络营销网站建设020网站设计
  • 网站推广策划方案模板成都有哪些好玩的
  • 绵阳网站开发公司android购物商城源码
  • 阿里巴巴网站详情页怎么做wordpress 商品
  • 简约好看的网站房产律师咨询免费24小时在线
  • 企业营销网站模板自己做的网站打不开
  • 网站建设 资讯动态世界500强企业
  • 米趋外贸网站建设app开发方案
  • 家装网站wordpress店铺模板制作
  • 学校网站建设命名移动网站备案
  • 浙江省建设行政主管部门网站qq网站访客获取系统
  • 怎么做企业网站仿站网站设计基本原则
  • 短链生成网站甘肃省建设厅网站首页
  • 做彩票网站需要学习什么购买wordpress模板
  • 地方行业网站网页设计心得体会400字
  • 深圳php网站建设直播系统源码