redux-toolkit学习笔记

          该文章是个人的redux-toolkit学习笔记,主要是redux-toolkit在项目中的使用方法。

一、创建仓库和读取仓库中的值 

1.安装redux-toolkit

> npm install @reduxjs/toolkit
> npm install react-redux

 2.创建仓库

        在src路径下新建仓库的路径store并新建store.js文件,并创建子仓库product(名字自拟),然后在store.js中引入product

//store.js
import { configureStore } from "@reduxjs/toolkit";
import product from "./product";//引入子仓库
//创建仓库
const store = configureStore({
  reducer: {
    product,//注册子仓库
  },
});
export default store;//导出仓库
// product.js
import { createSlice } from "@reduxjs/toolkit";

const counterSlice = createSlice({
  name: "product", //子仓库的名字
  //子仓库的默认值
  initialState: {
    name: "jack",
    age: "18",
    addr: "广州",
  },
  reducers: {},
});

export default counterSlice.reducer; //导出子仓库

3.全局引用仓库

        在index.js文件中全局引用仓库

import { Provider } from "react-redux";//导入Provider
import store from "./store/store";//导入仓库

...
//全局引入
<Provider store={store}>
   <App />
</Provider>
...

4.读取仓库中的值

   

import React from "react";
import { useSelector } from "react-redux";//引入useSelector函数
export default function News1() {
  //通过useSelector函数读取product子仓库中的值(product可换为自定义的仓库名)
  let { name, age, addr } = useSelector((store) => store.product);

  return (
    <div>
      <h3>{name}</h3>
      <h3>{age}</h3>
      <h3>{addr}</h3>
    </div>
  );
}

输出结果如下

 二、改变仓库中的值

1.定义函数并导出

        

// product.js
import { createSlice } from "@reduxjs/toolkit";

const counterSlice = createSlice({
  name: "product", //子仓库的名字
  //子仓库的默认值
  initialState: {
    name: "jack",
    age: "18",
    addr: "广州",
  },
  reducers: {
    //在reducers中定义函数,state为默认参数,value为调用函数时传递的参数
    changeName: (state, value) => {
       //state中的name变为传递过来的值
      state.name = value.payload;
    },
  },
});
export const { changeName } = counterSlice.actions;//导出函数
export default counterSlice.reducer; //导出子仓库

2.引入并调用函数

import React from "react";
import { useDispatch } from "react-redux";//引入useDispatch函数
import { changeName } from "../../store/product";//引入自定义的函数

export default function New2() {
  let dispatch = useDispatch();//通过useDispatch函数构造新的dispatch函数
  let changeName1 = () => {
    //dispatch函数调用时传递自定义的函数作为回调
    //自定义的函数传递值
    dispatch(changeName("rose"));
  };

  return (
    <div>
      <button onClick={changeName1}>改变</button>
    </div>
  );
}

改变前

 改变后

要安装redux-toolkit,你可以按照以下步骤进行操作: 1. 在你的项目中打开终端或命令行界面。 2. 运行以下命令来安装redux-toolkit: ``` npm install @reduxjs/toolkit ``` 或者如果你使用的是yarn,可以运行以下命令: ``` yarn add @reduxjs/toolkit ``` 3. 安装完成后,你可以在你的代码中引入redux-toolkit的configureStore函数,例如: ```javascript import { configureStore } from '@reduxjs/toolkit'; ``` 4. 接下来,你可以使用configureStore函数来创建和配置你的Redux store。你可以在reducer参数中传入你的reducer函数,或者使用combineReducers函数来合并多个reducer。例如: ```javascript import { configureStore, combineReducers } from '@reduxjs/toolkit'; // 导入你的reducer函数 import counterReducer from './reducers/counterReducer'; import todosReducer from './reducers/todosReducer'; // 合并多个reducer const rootReducer = combineReducers({ counter: counterReducer, todos: todosReducer, }); // 创建Redux store const store = configureStore({ reducer: rootReducer, }); ``` 5. 现在你已经成功安装了redux-toolkit并创建了Redux store,你可以在你的React组件中使用Provider组件来将store传递给你的应用程序。例如: ```javascript import React from 'react'; import { Provider } from 'react-redux'; import store from './store'; import App from './App'; ReactDOM.render( <Provider store={store}> <App /> </Provider>, document.getElementById('root') ); ``` 这样,你就可以在你的React组件中使用Redux store了。 #### 引用[.reference_title] - *1* *3* [redux toolkit 傻瓜教学](https://blog.csdn.net/wangyangnuli/article/details/122520675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Redux流程分析 传统流程和redux-toolkit的使用](https://blog.csdn.net/qq_23539691/article/details/119720636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值