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

百事企业的网站建设类型建设银行广州招聘网站

百事企业的网站建设类型,建设银行广州招聘网站,黑群晖建设个人网站,成都专业建网站Redux-Toolkit是为了简化使用Redux繁琐的步骤#xff0c;可以j降低使用useReducer与useContext管理状态的频率#xff0c;而且起到项目中状态管理规范和约束化的效果。 阅读本文需要的前置知识#xff1a;React、Redux、Typescript、Redux hooks。 Redux-Toolkit使用步骤 …Redux-Toolkit是为了简化使用Redux繁琐的步骤可以j降低使用useReducer与useContext管理状态的频率而且起到项目中状态管理规范和约束化的效果。 阅读本文需要的前置知识React、Redux、Typescript、Redux hooks。 Redux-Toolkit使用步骤 目前使用Redux-Toolkit管理消费redux状态的方式。举个例子假设我们现在的业务和银行转账有关有两个状态存在redux分别为银行账号和金额accountOfBank和amountOfBank使用createSlice来创建reducer和actions 首先安装redux-toolkit依赖包 npm i reduxjs/toolkit npm i react-redux 文件目录 slice.ts 创建切片声明存储状态对象以及action。createSlice创建一个切片slice主要参数 nameslice的标识在redux-devtool中会显示对应的名字initialState初始值对象reducers对象类型以及函数类型函数参数state和传递的action参数extraReducers用于处理异步比如网络请求等 creactSlice返回值是一个对象包含所有的actions。  import { createSlice, PayloadAction } from reduxjs/toolkit;type InitialState {accountOfBank: string,amountOfBank: string }const initialState: InitialState {accountOfBank: JanPan Bank,amountOfBank: 1000 }const slice createSlice({name: bank,initialState,reducers: {updateBankAccount: (state: InitialState, action: PayloadActionstring) {state.accountOfBank action.payload;},updateBankAmount: (state: InitialState, action: PayloadActionstring) {state.amountOfBank action.payload;}} })export const {updateBankAccount, updateBankAmount} slice.actions; export default slice.reducer; store.ts 存在在store中configureStore是Redux-Tookit的一个工厂函数用于创建Redux-Store。 store是通过传入一个reducer缩减器来创建的并通过getState的方法用于返回当前的状态值在Typescript强类型声明中有很大的帮助。 configureStore主要参数 reducer将slice的reducer传入middleware中间件devTools是否配置devTools工具默认为true import { configureStore } from reduxjs/toolkit; import slice from ./slice;export const store configureStore({reducer: {bank: slice} })export type BankState ReturnTypetypeof store.getState; index.tsx import React from react; import ReactDOM from react-dom/client; import App from ./App; import { Provider } from react-redux; import { store } from ./toolkit/store; const root ReactDOM.createRoot(document.getElementById(root) as HTMLElement ); root.render(Provider store{store}App //Provider );BankView.tsx 页面UI组件渲染useSelector获取当前管理的statestate的类型可通过store.ts的getState获取 并且将配置在store的reducer提取解构。 import { useDispatch, useSelector } from react-redux; import { BankState } from ../../toolkit/store; import { updateBankAccount, updateBankAmount } from ../../toolkit/slice;export const BankView () {const {accountOfBank, amountOfBank} useSelector((state: BankState) state.bank)const dispatch useDispatch();return (divh3accountOfBank - {accountOfBank}/h3h3amountBank - {amountOfBank}/h3button onClick{() dispatch(updateBankAccount(England))}change bank account/buttonspan /spanbutton onClick{() dispatch(updateBankAmount(2000))}change bank amount/button/div) } 详细目录截图如下 经过上面简单的封装就实现了全局状态管理使用简单高效而且可以实现业务与UI的解耦。 在网络请求等情况通常需要异常更新、提交数据等可通过createAynceThunk实现 import { createAsyncThunk, createSlice, PayloadAction } from reduxjs/toolkit;type InitialState {accountOfBank: string,amountOfBank: string,creatTime: string }const initialState: InitialState {accountOfBank: JanPan Bank,amountOfBank: 1000,creatTime: 2024-04-02 }export const fetchAccountBank createAsyncThunk(https://wwww.baidu.com,() {return new Promisestring(resolve {let timeId setTimeout(() {clearTimeout(timeId);resolve(2024-04-03);}, 1000)})})const slice createSlice({name: bank,initialState,reducers: {updateBankAccount: (state: InitialState, action: PayloadActionstring) {state.accountOfBank action.payload;},updateBankAmount: (state: InitialState, action: PayloadActionstring) {state.amountOfBank action.payload;}},extraReducers: (builder) {builder.addCase(fetchAccountBank.pending, (state: InitialState) {console.log(fetchAccountBank pending)state.creatTime loading...});builder.addCase(fetchAccountBank.fulfilled, (state, action) {console.log(action.payload)state.creatTime action.payload;console.log(fetchAccountBank fulfilled)});builder.addCase(fetchAccountBank.rejected, (state) {console.log(fetchAccountBank rejected)state.creatTime failed...})} })export const {updateBankAccount, updateBankAmount,} slice.actions; export default slice.reducer;因为Typescript语言有较强的类型校验在异步时dispatch报错如下 只需在使用useDispatch时声明泛型类型即可。 // 异步需声明useDispatch类型const asyncDispatch useDispatchAppDispatch(); 最佳实践全部代码如下 ReduxToolkitTypeScript最佳实践资源-CSDN文库
http://www.zqtcl.cn/news/326078/

相关文章:

  • 可以下载电影的网站怎么做做网站公司西安
  • 自己做签名网站网店美工培训教程
  • 宁波产品网站设计模板php 网站 教程
  • 制作一个网站的费用是多少免费网站空间怎么
  • 如何建立自己的微网站网站建设教程怎么建
  • seo网站项目讲解沈阳网红
  • 苏州大型网站建设公司网站外链优化
  • 阿里云购买域名后怎么建网站沂南网站设计
  • 网站建设基础考试php网站开发入门
  • 广州五屏网站建设seo诊断报告示例
  • 周浦高端网站建设公司信阳做网站的公司
  • 博客网站怎么建设湛江新闻头条最新消息
  • 外贸网站建设 评价有没有教做网站实例视频
  • 县 住房和城乡建设局网站wordpress接入支付宝
  • 网站建设初期推广方式天津网站建设案例
  • 销项税和进项导入是在国税网站做吗凡科网站模块
  • 苏州建网站皆去苏州聚尚网络常州企业建站系统
  • 网站建设明细wordpress 主题稳定
  • 网站设计论文前言怎么写肇庆网站开发哪家专业
  • 商城建站系统松江新城做网站公司
  • 长沙招聘做搜狗pc网站优化排
  • 辽宁智能建站系统价格金融做市场广告挂哪些网站
  • 做外贸的有哪些网站互动平台游戏
  • 网站设计最好的公司idc网站模板源码下载
  • 网站建设历史视频制作软件有哪些
  • 加盟网站制作定制桥的设计网站建设
  • 深圳做宣传网站的公司开发电商网站多少钱
  • 自适应网站建设公司什么是网站死链
  • 自己给网站做支付接口wordpress elementor
  • 中国最新军事新闻网站优化推广