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

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil)

這篇具有很好參考價(jià)值的文章主要介紹了React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

以往傳統(tǒng)的 Redux 狀態(tài)管理工具使用起來代碼太過于復(fù)雜。


你需要通過純函數(shù)觸發(fā) action 再去修改 data 中定義的數(shù)據(jù),而且要通過接口請求數(shù)據(jù)還需要借助 redux - think 這個(gè)中間件才能完成。。。

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

更加方便使用的工具:Recoil ~? ?由 facebook 推出契合 React 的狀態(tài)管理

它的定義方式和 useState 這個(gè) HOOK 非常像,你可以更加簡化的完成你的全局?jǐn)?shù)據(jù)共享

pnpm install recoil? ? ? ? yarn install recoil? ? ? ?npm install recoil

安裝好這個(gè)工具之后直接開始使用,需要引入之后包裹你的根組件?

import React from 'react';

// 引入 Recoil 在 main.tsx 中包裹住你的根組件
import {
  RecoilRoot,
  atom,
  selector,
  useRecoilState,
  useRecoilValue,
} from 'recoil';


function App() {
  return (
    // 此處包裹
    <RecoilRoot>
      <CharacterCounter />
    </RecoilRoot>
  );
}

這一步做好之后,你可以在 src 文件之下定義 store(倉庫)文件夾,名字隨便起,按照自己喜歡的來(前提取的名字不要太騷被你的領(lǐng)導(dǎo)叫去喝茶)

它有兩種定義數(shù)據(jù)的方式:

1. atom

2. selector

(在你創(chuàng)建好的文件夾下面創(chuàng)建 .js || .ts文件,比如我需要一個(gè)固定的管理員枚舉,不會被修改)?

1)第一種 atom 的形式

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

default 中可以寫任何數(shù)據(jù)結(jié)構(gòu),數(shù)組 對象 字符串 數(shù)字等等等等

你要使用怎么辦?

??React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

import { adminEnum } from '@/store/adminEnumObject'

?直接在組件里面引入它,'@/store/adminEnumObject' 就是我創(chuàng)建好的管理員枚舉文件

import { useRecoilValue } from 'recoil'

同時(shí)引入 recoil 身上的 useRecoilValue 方法,可以獲取你定義的 atom || selector 中的指定數(shù)據(jù)?(是不是跟 HOOK 的寫法非常像)?

const adminUser = useRecoilValue(adminEnum)

接著用??useRecoilValue 方法包裹你引入的文件,將它賦值給一個(gè)變量,你通過這個(gè)變量就可以訪問到他身上的所有屬性了。

注意:atom 定義的數(shù)據(jù)在刷新頁面會自動丟失,除非將數(shù)據(jù)寫成死的,一般用于固定的枚舉。

2)第二種 selector 的形式

這種定義方式就較為????了,因?yàn)樗鼉?nèi)部采用發(fā)布訂閱的模式

(這種形式定義的數(shù)據(jù)也會在刷新的同時(shí)全部丟失,是可以避免的。請繼續(xù)往下看)

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

?它帶有一個(gè) get 屬性,你可以在它內(nèi)部調(diào)用接口,return 出來的數(shù)據(jù)就會賦值給你這個(gè)變量

它只是一個(gè)定義的數(shù)據(jù)啊,那接口我不還得自己調(diào)用嗎?

如果說你在當(dāng)前頁面的組件里面使用到了這個(gè)數(shù)據(jù),他就會自動調(diào)用 get 中的接口,完成數(shù)據(jù)返回

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

?我這里使用到了 dictValuesSelector 并且這個(gè)頁面已經(jīng)渲染到瀏覽器了,它就會自動開始調(diào)用接口。

上面說的刷新會丟失數(shù)據(jù)的問題,你只要在當(dāng)前頁面用到了 Recoil 定義的 selector 它就會自動重新請求,永遠(yuǎn)不會出現(xiàn)數(shù)據(jù)突然丟失的問題!

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

并且你也可以給返回的數(shù)據(jù)寫上 TS 的類型?。∵@樣你的其他前端小伙伴在使用的時(shí)候可以更加快速的找到需要的字段信息。

React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil),react.js,javascript,前端,前端框架,yarn,npm,html

時(shí)小記,終有成。文章來源地址http://www.zghlxwxcb.cn/news/detail-736414.html

到了這里,關(guān)于React 你還在用 Redux 嗎?更簡化的狀態(tài)管理工具(Recoil)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • react狀態(tài)管理工具reduxjs/toolkit用法

    安裝?npm install @reduxjs/toolkit 1.創(chuàng)建一個(gè)名為 counterSlice.js 的文件,用于處理計(jì)數(shù)器模塊的狀態(tài): 2.創(chuàng)建一個(gè)名為 userSlice.js 的文件,用于處理用戶信息模塊的狀態(tài): 3.創(chuàng)建一個(gè)Redux store并將這些模塊整合起來。創(chuàng)建一個(gè)名為 store.js 的文件: 4.在你的應(yīng)用程序的入口處,將store與

    2024年02月15日
    瀏覽(15)
  • vue2(Vuex)、vue3(Pinia)、react(Redux)狀態(tài)管理

    vue2(Vuex)、vue3(Pinia)、react(Redux)狀態(tài)管理

    Vuex 是一個(gè)專為 Vue.js應(yīng)用程序開發(fā)的狀態(tài)管理模式。它使用集中式存儲管理應(yīng)用的所有組件的狀態(tài),以及規(guī)則保證狀態(tài)只能按照規(guī)定的方式進(jìn)行修改。 State(狀態(tài)) :Vuex 使用單一狀態(tài)樹,即一個(gè)對象包含全部的應(yīng)用層級狀態(tài)。這個(gè)狀態(tài)樹對應(yīng)著一個(gè)應(yīng)用中的所有狀態(tài)。 Gett

    2024年01月23日
    瀏覽(27)
  • 【實(shí)戰(zhàn)】 九、深入React 狀態(tài)管理與Redux機(jī)制(一) —— React17+React Hook+TS4 最佳實(shí)踐,仿 Jira 企業(yè)級項(xiàng)目(十六)

    學(xué)習(xí)內(nèi)容來源:React + React Hook + TS 最佳實(shí)踐-慕課網(wǎng) 相對原教程,我在學(xué)習(xí)開始時(shí)(2023.03)采用的是當(dāng)前最新版本: 項(xiàng) 版本 react react-dom ^18.2.0 react-router react-router-dom ^6.11.2 antd ^4.24.8 @commitlint/cli @commitlint/config-conventional ^17.4.4 eslint-config-prettier ^8.6.0 husky ^8.0.3 lint-staged ^13.1.2 p

    2024年02月15日
    瀏覽(22)
  • 【實(shí)戰(zhàn)】 九、深入React 狀態(tài)管理與Redux機(jī)制(五) —— React17+React Hook+TS4 最佳實(shí)踐,仿 Jira 企業(yè)級項(xiàng)目(二十)

    學(xué)習(xí)內(nèi)容來源:React + React Hook + TS 最佳實(shí)踐-慕課網(wǎng) 相對原教程,我在學(xué)習(xí)開始時(shí)(2023.03)采用的是當(dāng)前最新版本: 項(xiàng) 版本 react react-dom ^18.2.0 react-router react-router-dom ^6.11.2 antd ^4.24.8 @commitlint/cli @commitlint/config-conventional ^17.4.4 eslint-config-prettier ^8.6.0 husky ^8.0.3 lint-staged ^13.1.2 p

    2024年02月13日
    瀏覽(28)
  • 【實(shí)戰(zhàn)】 九、深入React 狀態(tài)管理與Redux機(jī)制(二) —— React17+React Hook+TS4 最佳實(shí)踐,仿 Jira 企業(yè)級項(xiàng)目(十七)

    學(xué)習(xí)內(nèi)容來源:React + React Hook + TS 最佳實(shí)踐-慕課網(wǎng) 相對原教程,我在學(xué)習(xí)開始時(shí)(2023.03)采用的是當(dāng)前最新版本: 項(xiàng) 版本 react react-dom ^18.2.0 react-router react-router-dom ^6.11.2 antd ^4.24.8 @commitlint/cli @commitlint/config-conventional ^17.4.4 eslint-config-prettier ^8.6.0 husky ^8.0.3 lint-staged ^13.1.2 p

    2024年02月14日
    瀏覽(23)
  • 超全!年薪40w項(xiàng)目經(jīng)理都在用的10個(gè)管理工具

    超全!年薪40w項(xiàng)目經(jīng)理都在用的10個(gè)管理工具

    大家好,我是老原。 今天的文章,當(dāng)然還是干貨為主。 這期給你安利一些免費(fèi)、好用、高效、簡潔的項(xiàng)目管理工具,這些工具都非常適合從事項(xiàng)目的打工人使用。 其實(shí)對于工作比較久的職場人來說,會有一個(gè)思維慣性,就是對免費(fèi)工具有些嗤之以鼻。 但如果有人幫你篩選了

    2024年02月11日
    瀏覽(21)
  • react之react-redux的介紹、基本使用、獲取狀態(tài)、分發(fā)動作、數(shù)據(jù)流、reducer的分離與合并等

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

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

    2024年02月11日
    瀏覽(31)
  • 你還在用Object.equals()方法嗎?

    你還在用Object.equals()方法嗎?

    當(dāng)《阿里巴巴Java開發(fā)手冊》發(fā)布后,我也是仔細(xì)進(jìn)行了閱讀,想從中找出一些“標(biāo)準(zhǔn)”,讓自己的代碼質(zhì)量提高。手冊中對 Object 的 equals 方法的使用進(jìn)行了強(qiáng)制,而且推薦使用 JDK7 中工具類 Objects 的 equals 方法,至此之后我就很少使用 Object.equals() 方法了。 在第一章:編程規(guī)

    2024年02月08日
    瀏覽(23)
  • 服務(wù)器推送數(shù)據(jù)你還在用 WebSocket么?

    服務(wù)器推送數(shù)據(jù)你還在用 WebSocket么?

    當(dāng)涉及到推送數(shù)據(jù)時(shí),人們首先會想到 WebSocket。 的確,WebSocket 允許雙向通信,可以自然地用于服務(wù)器到瀏覽器的消息推送。 然而,如果只需要單向的消息推送,HTTP 通過服務(wù)器發(fā)送的事件也有這種功能。 WebSocket 的通信過程如下: 首先,通過 HTTP 切換協(xié)議。服務(wù)器返回 101 狀態(tài)碼后

    2024年01月18日
    瀏覽(23)
  • 你還在用Kettle嗎?試試這款ETL工具

    你還在用Kettle嗎?試試這款ETL工具

    當(dāng)今時(shí)代,數(shù)字化轉(zhuǎn)型已經(jīng)成為企業(yè)發(fā)展的必由之路。數(shù)字化轉(zhuǎn)型不僅可以提高企業(yè)的效率和生產(chǎn)力,還可以提高企業(yè)的競爭力和市場份額。在數(shù)字化轉(zhuǎn)型的過程中,數(shù)據(jù)集成是至關(guān)重要的一步,可以幫助企業(yè)在數(shù)字化轉(zhuǎn)型中實(shí)現(xiàn)更高效和可靠的數(shù)據(jù)服務(wù)。 在國內(nèi)沒有更好的

    2024年02月09日
    瀏覽(20)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包