国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

React中使用Redux (二) - 通過react-redux庫(kù)連接React和Redux

這篇具有很好參考價(jià)值的文章主要介紹了React中使用Redux (二) - 通過react-redux庫(kù)連接React和Redux。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

react-redux庫(kù)使用Redux

上一篇文章演示React中直接使用Redux的使用過程是十分繁瑣的, 并且有許多重復(fù)代碼

但是實(shí)際上redux官方幫助我們提供了 react-redux 的庫(kù),這個(gè)庫(kù)是幫助我們完成連接redux和react的輔助工具, 可以直接在項(xiàng)目中使用,并且實(shí)現(xiàn)的邏輯會(huì)更加的嚴(yán)謹(jǐn)和高效

這篇我們就可以使用react-redux庫(kù)將上一篇文章的計(jì)數(shù)器案例進(jìn)行優(yōu)化

安裝react-redux: yarn add react-reduxnpm i react-redux

使用react-redux這個(gè)庫(kù)分成兩個(gè)步驟

步驟一: react-redux庫(kù)只需要提供一次store, 我們?cè)趇ndex.js中為App根組件提供store, 方式如下:

// index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
// 引入Provider和store
import { Provider } from 'react-redux';
import store from './store';

const root = ReactDOM.createRoot(document.querySelector('#root'));
root.render(
  // 在Provider聲明要提供哪一個(gè)store
  <Provider store={store}>
    <App/>
  </Provider>
);

步驟二: 在要使用store的地方, 通過connect函數(shù)將組件和store連接起來

connect函數(shù)是一個(gè)高階函數(shù), 該函數(shù)返回一個(gè)高階組件, 而高階組件又是一個(gè)函數(shù), 所以我們通常見到connect函數(shù)是這樣調(diào)用的connect(fn1, fn2)(組件)

store中的狀態(tài)可能是非常多的, 而connect函數(shù)的參數(shù)的作用是, 要將store中的哪些數(shù)據(jù)或者方法映射過去, 我們就可以根據(jù)自己的需求, 決定映射過去哪些數(shù)據(jù), 而不是直接將整個(gè)store映射過去(使用方式如下)

connect高階函數(shù)接收兩個(gè)參數(shù):

參數(shù)一: 接收一個(gè)函數(shù)fn1, 要求fn1返回一個(gè)對(duì)象, 對(duì)象中存放要映射的數(shù)據(jù); 同時(shí)在回調(diào)fn1函數(shù)時(shí), 會(huì)將state傳到fn1中

映射到組件中的數(shù)據(jù)是通過this.props獲取的

import React, { PureComponent } from 'react'
import { connect } from 'react-redux'

export class About extends PureComponent {
  render() {
    // 在props中獲取到映射過來的數(shù)據(jù)
    const { counter } = this.props

    return (
      <div>
        <h2>About</h2>
        <h2>當(dāng)前計(jì)數(shù): {counter}</h2>
      </div>
    )
  }
}

// 回調(diào)mapStateToProps時(shí)會(huì)傳遞過來state
const mapStateToProps = (state) => ({
  // 表示將counter數(shù)據(jù)映射過去, 當(dāng)然還可以映射其他的數(shù)據(jù)
  counter: state.counter
})

// 表示將數(shù)據(jù)映射到About組件中
export default connect(mapStateToProps)(About)

參數(shù)二: 參數(shù)二也是接收一個(gè)參數(shù)fn2, 要求fn2也是返回一個(gè)對(duì)象, 對(duì)象中的屬性同樣會(huì)映射到props中去; 不同于fn1的是, 該對(duì)象中存放的全部都是函數(shù); 并且在回到時(shí)將dispatch傳入到fn2中

我們一般在參數(shù)二中映射的是dispatch派發(fā)action的操作文章來源地址http://www.zghlxwxcb.cn/news/detail-830019.html

import React, { PureComponent } from 'react'
import { connect } from 'react-redux'
import { changeNumAction } from '../store/actionCreators'

export class About extends PureComponent {
  changeNum(num) {
    // 調(diào)用映射到props的方法
    this.props.changeNumber(num)
  }

  render() {
    const { counter } = this.props

    return (
      <div>
        <h2>About</h2>
        <h2>當(dāng)前計(jì)數(shù): {counter}</h2>
        <button onClick={() => this.changeNum(10)}>+10</button>
        <button onClick={() => this.changeNum(-10)}>-10</button>
      </div>
    )
  }
}

const mapStateToProps = (state) => ({
  counter: state.counter
})

// 回調(diào)mapDispatchToProps時(shí)會(huì)傳遞過來dispatch
const mapDispatchToProps = (dispatch) => ({
  // 表示映射到組件props的方法
  changeNumber(num) {
    dispatch(changeNumAction(num))
  }
})

// 表示將數(shù)據(jù)映射到About組件中
export default connect(mapStateToProps, mapDispatchToProps)(About)

到了這里,關(guān)于React中使用Redux (二) - 通過react-redux庫(kù)連接React和Redux的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • react之react-redux的介紹、基本使用、獲取狀態(tài)、分發(fā)動(dòng)作、數(shù)據(jù)流、reducer的分離與合并等

    react之react-redux的介紹、基本使用、獲取狀態(tài)、分發(fā)動(dòng)作、數(shù)據(jù)流、reducer的分離與合并等

    官網(wǎng)地址 React 和 Redux 是兩個(gè)獨(dú)立的庫(kù),兩者之間職責(zé)獨(dú)立。因此,為了實(shí)現(xiàn)在 React 中使用 Redux 進(jìn)行狀態(tài)管理 ,就需要一種機(jī)制,將這兩個(gè)獨(dú)立的庫(kù)關(guān)聯(lián)在一起。這時(shí)候就用到 React-Redux 這個(gè)綁定庫(kù)了 作用:為 React 接入 Redux,實(shí)現(xiàn)在 React 中使用 Redux 進(jìn)行狀態(tài)管理。 react-r

    2024年02月11日
    瀏覽(31)
  • react中使用redux,但是通過useEffect監(jiān)聽不到redux中的數(shù)據(jù)變化?

    在React中使用Redux并通過useEffect監(jiān)聽Redux中的數(shù)據(jù)變化時(shí),需要使用 react-redux 庫(kù)中的 useSelector 鉤子來選擇需要監(jiān)聽的Redux狀態(tài)。 useSelector 函數(shù)允許您從Redux存儲(chǔ)中選擇和獲取特定的狀態(tài)。 以下是一種在React組件中使用Redux,并通過useEffect監(jiān)聽Redux中的數(shù)據(jù)變化的常見方法: 首先

    2024年02月16日
    瀏覽(26)
  • React中使用Redux (一) - 在React中直接使用Redux

    React中使用Redux (一) - 在React中直接使用Redux

    開始之前需要強(qiáng)調(diào)一下,redux和react沒有直接的關(guān)系,你完全可以在React, Angular, Ember, jQuery, or vanilla JavaScript中使用Redux 。 盡管這樣說,redux依然是和React庫(kù)結(jié)合的更好,因?yàn)樗麄兪峭ㄟ^state函數(shù)來描述界面的狀態(tài),Redux可以發(fā)射狀態(tài)的更新, 讓他們作出相應(yīng); 目前redux在react中使

    2024年01月23日
    瀏覽(32)
  • 什么是redux?如何在react 項(xiàng)目中使用redux?

    redux是一種用于管理JavaScript應(yīng)用程序的狀態(tài)管理庫(kù)。它可以與React、Augular、Vue等前端框架結(jié)合使用,但也可以純?cè)贘avaScript應(yīng)用程序中獨(dú)立使用。redux遵循單項(xiàng)數(shù)據(jù)流的原則,通過一個(gè)全局的狀態(tài)樹來管理應(yīng)用程序的狀態(tài),從而使?fàn)顟B(tài)的變化更加可預(yù)測(cè)和已于維護(hù)。 redux的核心

    2024年02月15日
    瀏覽(25)
  • React中使用Redux

    React中使用Redux

    ? ? ? ? redux是一個(gè)專門用于狀態(tài)管理的一個(gè)庫(kù),和vue中的vuex功能類似。其中核心點(diǎn)就是狀態(tài)的管理。雖然我們無論在vue還是在react中我們組件間的通行都可以使用消息總線或者父子組件間的消息傳遞來進(jìn)行操作。但是如果我們需要A組件的狀態(tài)在其他十個(gè)或者二十個(gè)組件上進(jìn)

    2024年02月16日
    瀏覽(25)
  • Redux - Redux在React函數(shù)式組件中的基本使用

    Redux - Redux在React函數(shù)式組件中的基本使用

    Redux 是 JavaScript 應(yīng)用的狀態(tài)容器,提供可預(yù)測(cè)的狀態(tài)管理。 它主要的幾個(gè)方法如下: 重要的有方法 有 dispatch(分發(fā)action) 、 getState(獲取state) 、 subscribe(監(jiān)聽state的變化) ,下面會(huì)介紹到,另外兩個(gè)可以不用管; 那什么時(shí)候使用Redux呢? 當(dāng)遇到如下問題時(shí),建議開始使

    2024年02月13日
    瀏覽(31)
  • 【React】Redux的使用詳解

    【React】Redux的使用詳解

    ? 單一數(shù)據(jù)源 ? ? 整個(gè)應(yīng)用程序的state被存儲(chǔ)在一顆object tree中,并且這個(gè)object tree只存儲(chǔ)在一個(gè) store 中: ? ? Redux并沒有強(qiáng)制讓我們不能創(chuàng)建多個(gè)Store,但是那樣做并不利于數(shù)據(jù)的維護(hù); ? ? 單一的數(shù)據(jù)源可以讓整個(gè)應(yīng)用程序的state變得方便維護(hù)、追蹤、修改; ? St

    2024年01月18日
    瀏覽(24)
  • React - redux 使用(由淺入深)

    React - redux 使用(由淺入深)

    中文文檔: http://www.redux.org.cn/ 英文文檔: https://redux.js.org/ Github: https://github.com/reactjs/redux 可直接參照 目錄十 進(jìn)行使用 react-redux redux 是一個(gè)專門用于做狀態(tài)管理的JS庫(kù)(不是react插件庫(kù))。 它可以用在 react, angular, vue 等項(xiàng)目中, 但基本與 react 配合使用。 作用: 集中式管理 re

    2024年02月07日
    瀏覽(24)
  • React--》Redux Toolkit的使用講解

    React--》Redux Toolkit的使用講解

    目錄 Redux Toolkit redux toolkit的基本使用 RTK代碼模塊化 RTK QUERY的使用 useQuery參數(shù) Redux Toolkit是Redux的工具包,簡(jiǎn)稱RTK,可以幫助我們處理使用Redux過程中的重復(fù)性工作,簡(jiǎn)化Redux中的各種操作,當(dāng)然博主也不可能將RTK講解的面面俱到,看完本篇文章后還是推薦大家多多看一下 官方

    2024年02月01日
    瀏覽(22)
  • React - Redux Hooks的使用細(xì)節(jié)詳解

    Redux中Hooks介紹 在之前的redux開發(fā)中,為了讓組件和redux結(jié)合起來,我們使用了react-redux庫(kù)中的connect : 但是這種方式必須使用高階函數(shù)結(jié)合返回的高階組件; 并且必須編寫:mapStateToProps和 mapDispatchToProps映射的函數(shù), 具體使用方式在前面文章有講解; 在Redux7.1開始,提供了Hook的方式

    2024年02月02日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包