当前位置: 首页 > 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://www.dtcms.com/wzjs/824972.html

相关文章:

  • 昆明网站排名优化公司哪家好php mysql wordpress
  • 山东品牌建设网站seo培训机构哪家好
  • 网站开发能不能用win7系统网站建设的目的与意义是什么
  • 吉林市建设厅网站网站定制费用
  • 四川省的住房和城乡建设厅网站请人做网站多少钱
  • 高中信息技术网站设计规划海外域名商
  • 怎样做网站优化 知乎商业计划的网站建设费用
  • 汕头市企业网站建设哪家好网站建设维护工作职责
  • 做网站的而程序wordpress仿小菜淘宝客插件
  • 全国免费发布信息网站大全立方米网站建设
  • wap php网站源码汕头网站专业制作
  • 商务网站的功能做网站用什么字体最明显
  • 个人网站如何制作教程无实体店营业执照申请
  • 国内自助建站网站团队人数
  • 我想做一个网站怎么办陕西民盛建设有限公司网站
  • 做黑彩网站能赚钱吗濮阳新闻
  • 网站建设这个工作怎么样住房和建设部网站首页
  • 昆山建设监察大队网站各类设计型网站
  • 玩具网站开发背景网站授权系统怎么用
  • 宿州网站建设多少钱手机端网站开发要注意什么
  • 重庆涪陵网站建设深圳住房和城乡建设部网站
  • wordpress 网站改名网络公司营业范围
  • 做网站还是app服装网页设计欣赏
  • 网站开发的书籍wordpress积分商城
  • 云南网站的设计公司简介wordpress 相册 免费模板
  • 太仓网站制作公司哪家好网页访问被拒绝怎么办
  • asp 网站数据库连接错误切管机维修 东莞网站建设
  • 网站建设初级教程如何搭建网站的支付接口
  • php网站开发原理哔哩哔哩网页版在线观看网址
  • 我看别人做系统就直接网站下载文件广州省建设监理协会网站