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

网页制作怎么做多个网站环球网今日疫情消息

网页制作怎么做多个网站,环球网今日疫情消息,阿里云建立网站备案,网站建设需要做哪些工作一、什么是action creators 1、概念 在Redux中,Action Creators是一种函数,它用于创建一个描述应用程序状态变化的action对象。Action对象是一个普通JavaScript对象,它包含一个描述action类型的字符串属性(通常称为“type”&…

一、什么是action creators

1、概念

在Redux中,Action Creators是一种函数,它用于创建一个描述应用程序状态变化的action对象。Action对象是一个普通JavaScript对象,它包含一个描述action类型的字符串属性(通常称为“type”),以及与该操作相关的其他属性。

Action Creators 是 Redux 应用程序的重要部分,因为它们提供了一种清晰和标准化的方式来描述应用程序中的操作,并将这些操作转化为 Redux 可以理解的形式。此外,Action Creators 还允许应用程序的各个部分之间进行通信,包括 React 组件和 Redux Store。

2、例子

一下部分就是一个简单的action creators

function incrementCounter() {return { type: 'INCREMENT_COUNTER' };
}

二、什么是bindActionCreators

1、概念

bindActionCreators 是 Redux 中的一个函数,用于将多个 action creators 绑定到 dispatch 函数上,使得可以在 Redux 应用中轻松调用这些 action creators。

2、基本语法

/*** 接收两个参数* 第一个参数 actionCreators:一个 Action Creator 函数或包含多个 Action Creator 函数的对象。* 如果是对象,则对象的键名将用作 Action Creator 函数的名称。* dispatch:Redux Store 的 dispatch 函数。* * bindActionCreators 的返回值是一个对象,* 这个对象包含了与原始 action creators 同名的函数,* 但这些函数在调用时会自动派发一个 action,而不需要手动调用 dispatch。* 这个返回的对象可以直接作为组件的 props 传递给 React 组件使用*/
const actions = bindActionCreators({ incrementCounter }, dispatch);

三、封装一个userActions hooks

将多个 Action Creator 函数绑定到 Redux store 的 dispatch 函数上,使它们能够被在组件中直接调用。

import { useMemo } from "react";
import { useDispatch } from "react-redux";
import { bindActionCreators } from "redux";/**** @param {} actionCreators* 接收一个actionCreators对象* @returns*/
export const useAction = (actionCreators) => {const dispatch = useDispatch();return bindActionCreators(actionCreators, dispatch);
};// 进阶使用useMemo
// export const useAction = (actionCreators) => {
//   const dispatch = useDispatch();
//   return useMemo(() => {
//     console.log("调用了");
//     return bindActionCreators(actionCreators, dispatch);
//   }, [actionCreators, dispatch]);
// };

四、基本使用

1、创建actions目录,并在目录里创建user.js模块

import { bindActionCreators } from "redux";
import { useDispatch } from "react-redux";function addAge() {return {type: "user/addAge",};
}export default {addAge,
};

2、在reducer模块中添加user.js模块

import produce from "immer";const defaultState = {name: "李光明",age: 20,
};export const userReducer = (state = defaultState, action) => {switch (action.type) {/*** reducer模块化后命名* 一般要求全局唯一* 一般来可以采用模块名/case名的方式*/case "user/addAge":// 如果使用了之间封装的immer中间件则必须使用immer更新// return produce(state, draft => {//   draft.age += 1// })return {...state, age: state.age + 1}default:return state;}
};

3、页面中使用

import { useSelector } from "react-redux";
import { useAction } from "./store/utils";
import userActionCreators from "./store/actions/user";
import { compose } from "redux";export default function LearnRedux3() {const state = useSelector((state) => state.user);/*** 所以的action最终都要使用dispath分发* 那么我就使用直接把action creator 和 dispath绑定* 在页面中直接使用*/const action = useAction(userActionCreators);const add = () => {console.log(action);action.addAge();};return (<div><div>年龄:{state.age}</div><button onClick={() => add()}>过年</button></div>);
}
http://www.wooajung.com/news/27916.html

相关文章:

  • 老外做摄影网站花多少钱海外推广解决方案
  • 网页微博怎么回到旧版梅州seo
  • 红色旅游网站页面建设网络推广专员岗位职责
  • 给个网站靠谱点2021免费推广平台有哪些
  • 沧州做网站哪家公司好seo搜索引擎排名优化
  • 法律网站建设价格百度seo竞价推广是什么
  • 工程建设招标中心网站百度关键词批量看排名工具
  • 网站做cdnseoaoo
  • 德阳建设厅官方网站友情链接怎么设置
  • 17一起做网店网站潮汕网页设计软件
  • 如何通审查元素做网站汕头seo优化
  • 深圳做棋牌网站建设哪家好推广普通话内容50字
  • 导航网站怎么做的搜索引擎优化策略包括
  • 响应式网站用什么做独立站seo建站系统
  • 外包加工网注册收费靠谱吗百度seo关键词优化方案
  • 中山高端网站建设价格微博指数
  • 可以做短信炸弹的网站seo平台优化
  • 专业做微视频的网站360营销
  • 如何给公司注册网站竞价账户托管公司
  • 做医院网站公司怎么买域名自己做网站
  • phicomm怎么做网站重庆网站排名提升
  • 虎门公司网站建设百度关键词优化多少钱一年
  • qq整人网站怎么做网络销售的工作内容
  • 网站推广软件ky99小程序推广方案
  • 电影网站带采集360优化关键词
  • 12306网站是学生做的游戏推广代理app
  • 手机商城网站制作google推广妙招
  • 音乐网站样式设计网络推广的工作好做吗
  • 石家庄网站建设咨询手机版百度入口
  • 白云手机网站建设价格百度推广管家