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

织梦网站301重定向外包网络推广营销

织梦网站301重定向,外包网络推广营销,zhi做网站,html5网站开发课题设计React 基础巩固(三十五)——ReduxToolKit (RTK) 一、RTK介绍 Redux Tool Kit (RTK)是官方推荐的编写Redux逻辑的方法,旨在成为编写Redux逻辑的标准方式,从而解决上面提到的问题。 RTK的核心API主要有如下几个: confi…

React 基础巩固(三十五)——ReduxToolKit (RTK)

一、RTK介绍

  1. Redux Tool Kit (RTK)是官方推荐的编写Redux逻辑的方法,旨在成为编写Redux逻辑的标准方式,从而解决上面提到的问题。

  2. RTK的核心API主要有如下几个:

    • configureStore:包装createStore以提供简化的配置选项和良好的默认值。它可以自动组合你的slice reducer,添加你提供的任何Redux中间件,redux-thunk默认包含,并启用Redux DevTools Extension。

      参数描述
      reducer将slice中的reducer组成一个对象传入此处
      middleware传入中间件
      devTools是否配置devTools工具,默认为true
    • createSlice:接受reducer函数的对象、切片名和初始状态值,并自动生成切片reducer,并带有相应的actions。

      参数描述
      name用户标记slice的名次
      initialState初始化值
      reducersreducer函数,对象类型,可添加多个
      createSlice返回值是一个对象,包含所有的actions
    • createAsyncThunk:接受一个动作类型字符串和一个返回承诺的函数,并生成一个pending/fulfilled/rejected基于该承诺分派动作类型的thunk。

二、RTK的简单使用

  1. 安装 toolkit 和 react-redux

    npm install @reduxjs/toolkit react-redux
    
  2. 利用 createSlice 构建store分片(store/features/counter.js)

    import { createSlice } from "@reduxjs/toolkit";// createSlice(用户标记slice的名称, )
    const counterSlice = createSlice({name: "counter",initialState: {counter: 989,},reducers: {addNumber(state, {payload}) {console.log("add number", payload);state.counter = state.counter + payload;},subNumber(state, {payload}) {console.log("sub number", payload);state.counter = state.counter - payload;},},
    });export const { addNumber, subNumber } = counterSlice.actions;export default counterSlice.reducer;
  3. 利用configureStore 配置store(store/index.js)

    import { configureStore } from "@reduxjs/toolkit";import counterReducer from "./features/counter";const store = configureStore({reducer: {counter: counterReducer,},
    });export default store;
  4. 利用react-redux,依照往常的做法,将store注入index.js

    import React from "react";
    import ReactDOM from "react-dom/client";
    import { Provider } from "react-redux";
    import App from "./App";
    import store from "./store";const root = ReactDOM.createRoot(document.getElementById("root"));
    root.render(// <React.StrictMode><Provider store={store}><App /></Provider>// </React.StrictMode>
    );
  5. 利用react-redux,依照往常的做法,在需要使用store及dispatch操作的页面文件中通过connect进行连接

    // Home.jsx
    import React, { PureComponent } from "react";
    import { connect } from "react-redux";
    import { addNumber } from "../store/features/counter";export class Home extends PureComponent {addNumber(num) {this.props.addNumber(num);}render() {const { counter } = this.props;return (<div>home:{counter}<button onClick={(e) => this.addNumber(5)}>+5</button><button onClick={(e) => this.addNumber(8)}>+8</button><button onClick={(e) => this.addNumber(18)}>+18</button></div>);}
    }const mapStateToProps = (state) => ({counter: state.counter.counter,
    });const mapDispatchToProps = (dispatch) => ({addNumber(num) {dispatch(addNumber(num));},
    });export default connect(mapStateToProps, mapDispatchToProps)(Home);
    // Profile.jsx
    import React, { PureComponent } from "react";
    import { connect } from "react-redux";
    import { subNumber } from "../store/features/counter";export class Profile extends PureComponent {subNumber(num) {this.props.subNumber(num);}render() {const { counter } = this.props;return (<div>profile:{counter}<button onClick={(e) => this.subNumber(5)}>-5</button><button onClick={(e) => this.subNumber(8)}>-8</button></div>);}
    }const mapStateToProps = (state) => ({counter: state.counter.counter,
    });const mapDispatchToProps = (dispatch) => ({subNumber(num) {dispatch(subNumber(num));},
    });export default connect(mapStateToProps, mapDispatchToProps)(Profile);
  6. 将界面引入App.jsx

    import React, { PureComponent } from "react";
    import { connect } from "react-redux";
    import Home from "./pages/Home";
    import Profile from "./pages/Profile";
    import "./style.css";export class App extends PureComponent {render() {const { counter } = this.props;return (<div><h2>App Counter: {counter}</h2><div className="pages"><Home /><Profile /></div></div>);}
    }const mapStateToProps = (state) => ({counter: state.counter.counter
    });export default connect(mapStateToProps)(App);
  7. 查看运行结果,和之前单独使用react-redux的效果一致,但在代码层面上化繁为简 在这里插入图片描述

http://www.shuangfujiaoyu.com/news/16485.html

相关文章:

  • 清远医院网站建设方案新开发的app怎么推广
  • 网站的软件网络营销服务有哪些
  • 有什么做户外活动的网站吗seo优化包括
  • 怎么利用网站做兼职网上电商怎么做
  • 查看网站源代码建站可以做一个网站
  • 2b2网站开发最新的疫情最新消息
  • 如何做网站的充值功能优化大师官网登录入口
  • 网站办理公安备案吗福清市百度seo
  • 网站建设平台还有没有趋势杭州seo软件
  • 乡村旅游电子商务网站建设软文世界
  • 国内外贸网站微信软文范例100字
  • 网站栏目页模板百度搜索智能精选
  • h5网站和响应式网站区别软文广告素材
  • 怎样做网站底部导航国内做网站的公司
  • 国外销售网站怎样建设郑州网
  • 做直播信号网站nba最新比赛直播
  • 网站做下cdn注册城乡规划师教材
  • 目前做网站最牛餐饮营销手段
  • 公司微信网站制作window优化大师
  • 怎么快速提升网站权重单页网站排名优化
  • 做网站需要注意什么职业培训网络平台
  • 石家庄网站快速排名引流获客工具
  • 温州免费做网站百度广告上的商家可靠吗
  • 网站方案书免费智能营销系统
  • 怎么用动态网站模板网络营销策略分析方法
  • wordpress资源站主题免费的外链平台
  • 做网站怎么去找客户如何在互联网上做推广
  • 微网站 注册杭州seo公司
  • 珠海专业医疗网站建设seo站长网怎么下载
  • 广州做网站建设电工培训技术学校