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

卖服务器建网站企业官方网站推广

卖服务器建网站,企业官方网站推广,软件开发需要学多久,京东seo是什么意思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/4862.html

相关文章:

  • 深圳品牌网站建设公司排名seo服务包括哪些
  • 建设银行企业信息门户网站东莞seo关键词排名优化排名
  • 网站建设理念免费推广渠道有哪些
  • 广东手机网站建设哪家好谷歌seo新规则
  • 网站的页头页脚怎么做营销推广策划方案范文
  • wordpress购物网站网络营销主要有哪些特点
  • 东莞艺美网站建设搜索引擎优化百度百科
  • 舞泡网转让天猫店淄博seo公司
  • 西安网站建设是什么成都百度网站排名优化
  • 定制化网站开发网络科技有限公司
  • 网站建设找哪一家比较好培训网站官网
  • 阆中做网站班级优化大师怎么下载
  • 秀山网站制作杭州seo网络推广
  • 广州网站建设平台网站运营策划书
  • 全国网站建设成都网站建设企业
  • shopex网站首页空白电商网站建设开发
  • 用宝塔做网站腾讯企点怎么注册
  • 要个网站网址域名大全
  • 2狠狠做网站计算机培训机构排名
  • 100m网站空间服务费上海网站seoseodian
  • 网站建设简单青岛seo培训
  • 大岭山网站企业关键词优化价格
  • 好的做网站架构的书网站排名优化推广
  • 建在线教育网站需要多少钱集客营销软件
  • 东莞网站建设推广服务整合营销案例
  • 电子商务与网络营销题库百度广告优化
  • 信息类网站郴州网站建设
  • 免费ppt模板下载可爱深圳的seo网站排名优化
  • 可以建立网站的平台阿里指数数据分析平台官网
  • 软文网站外贸网站seo推广教程