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

长沙网站设计公司怎么样做海报素材网站

长沙网站设计公司怎么样,做海报素材网站,旅游网站制作旅游网,成都上界品牌设计事务所一、概念 createAction 是一个用于创建 Redux action creator 的函数,它可以让你更快地编写 Redux 相关的代码,并且更加易于阅读和维护。 二、简单示例 使用 createAction,你只需要传入一个字符串类型的 action type,然后它会返…

一、概念

createAction 是一个用于创建 Redux action creator 的函数,它可以让你更快地编写 Redux 相关的代码,并且更加易于阅读和维护。

二、简单示例

使用 createAction,你只需要传入一个字符串类型的 action type,然后它会返回一个新的函数,这个函数就是 Redux action creator。当你调用这个新的函数时,它会返回一个包含 type 属性的普通 JavaScript 对象,这个对象就是 Redux 中的 action。

import { createAction } from '@reduxjs/toolkit'const increment = createAction('counter/increment')// 使用新的action creator
dispatch(increment()) // { type: 'counter/increment' }

三、使用createAction的好处

在实际使用中,createAction 的最大优点在于它可以自动创建 FSA(Flux Standard Action)规范的 action,即一个带有 type、payload 和 error 属性的 action。这使得我们在编写 Redux 相关的代码时,可以更加标准化和规范化,同时也能够更好地与其他库和工具集成。

import { createAction } from '@reduxjs/toolkit'const addTodo = createAction('todos/add', (text) => ({payload: { text }
}))// 使用新的action creator
dispatch(addTodo('Buy milk')) // { type: 'todos/add', payload: { text: 'Buy milk' } }

四、实际例子

1、创建reducers目录并创建user.js文件

import { createReducer } from "@reduxjs/toolkit";const userReducer = createReducer({age: 1,name: "张三",},(builder) => {builder.addCase("user/ageAdd", (state, action) => {state.age += 1;}).addCase("user/updateName", (state, action) => {state.name = action.payload.name;});}
);export default userReducer;

2、创建actions目录并创建user.js文件

import { createAction } from "@reduxjs/toolkit";/*** 接收两个参数* 第一个参数 要调用reducer的名字* 第二参数 是一个方法,接收调用时传过来的参数* 返回一个payload的对象*/
export const ageAdd = createAction("user/ageAdd", () => {return {payload: {},};
});export const updateName = createAction("user/updateName", (name) => {return {payload: {name,},};
});

3、在configureStore中挂载

import { configureStore, createReducer } from "@reduxjs/toolkit";
import userReducer from "./reducers/user";export const countReducer = createReducer({num: 1,},{/*** 接收两个参数* @param {} state 当前的状态* @param {*} action 页面上传过来的状态*/add: (state, action) => {// 在这里面可以直接修改state 不需要returnstate.num += 1;},}
);const store = configureStore({// reducer: countReducer,reducer: userReducer,
});export default store;

4、页面中使用

import { useSelector, useDispatch } from "react-redux";
import { ageAdd, updateName } from "./store/actions/user";export default function LearnReduxToolkit() {const state = useSelector((state) => state);const dispatch = useDispatch();return (<div><div>{state.name} - {state.age}</div><button onClick={() => dispatch(ageAdd())}>age + 1</button><inputtype="text"onChange={(event) => dispatch(updateName(event.target.value))}/></div>);
}
http://www.yayakq.cn/news/788189/

相关文章:

  • 怎么免费做自己的网站常州住房和城乡建设局网站首页
  • 秀山微信网站建设做企业宣传片的网站
  • 法华寺网站建设外贸网站外链
  • 青岛知名网站建设在线制作头像生成
  • 网站建设中 html模板html代码怎么变成网页
  • 一元云购网站黑客攻击自己装修设计软件
  • 免费的舆情网站app下载如何用手机制作app软件
  • 为企业做一个网站多少钱做淘宝好还是自建网站好
  • 营销型企业网站建设策划河南品牌网站建设
  • 深圳建设工程协会网站南京做网站的公司
  • 淘宝客怎么做的网站推广wordpress api 发贴
  • 企业建站费用情况帮人建网站价格
  • 小女孩做网站一 网站建设方案
  • 青海建设局网站东莞建设网站制作
  • 虚拟主机和服务器青岛做优化网站哪家好
  • 网站建设设计官网kuake自助建站系统源码
  • 网站怎么做登陆nas 支持做网站
  • 宁波seo推广推荐公司整站优化该怎么做
  • 建收费网站网站对公司的作用是什么
  • 做网站后台数据库建设展厅布展方案设计
  • 网站按钮psd深圳网站制作哪家负责
  • 深圳正规网站开发团队在新加坡注册公司需要什么条件
  • 泰和网站建设企业seo策划方案优化案例
  • 公司网站优化推广全网推广的方式有哪些
  • 常见的营销型网站但无法上网
  • 怎么检测网站是否安全做变性手术视频网站
  • 如何让域名到网站汽车网站建设报价
  • 电子设计大赛网站开发网站开发外包公司
  • 深圳航空公司官方网站招聘四合一网站建设源码
  • 做ppt的软件怎样下载网站全屏网站怎么做的