日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

為啥我放棄用 Pinia 和 Vuex 去做字典狀態(tài)管理呢?

來源: 責編: 時間:2024-01-15 09:20:22 211觀看
導讀大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~最近需要需要封裝一套字典數(shù)據(jù),給團隊中的所有項目使用,因為畢竟字典這東西,是很通用的,所以封裝一套公用的字典數(shù)據(jù),也是很有必

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~hRc28資訊網(wǎng)——每日最新資訊28at.com

最近需要需要封裝一套字典數(shù)據(jù),給團隊中的所有項目使用,因為畢竟字典這東西,是很通用的,所以封裝一套公用的字典數(shù)據(jù),也是很有必要的~hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

一、字典封裝

在項目開發(fā)中,字典是不可或缺的一部分,字典一般就是一個不會頻繁修改的集合,字典的作用一般是用來做:hRc28資訊網(wǎng)——每日最新資訊28at.com

  • 下拉框選擇
  • 表格數(shù)據(jù)的回顯
  • 其他用處

hRc28資訊網(wǎng)——每日最新資訊28at.com

1.下拉框選擇

這個相信是用的最多的,項目中會有許許多多的下拉框,這些下拉框其實基本都是不變的,且可能很多個頁面的下拉框都會共用同一個字典hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

2.表格回顯

比如你在添加表格數(shù)據(jù)的時候,你傳的是字典值去后端,那么到時查詢表格數(shù)據(jù)回顯時,后端也是給你返回字典值的話,那么這時你需要通過字典值去匹配出字典文本顯示在表格上~hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

3.其他用處

當然字典也有其他用處,比如你需要拿這個字典列表去展示到頁面上,或者其他不同的用戶。hRc28資訊網(wǎng)——每日最新資訊28at.com

4.思考

當我們明白字典的用處之后,思考一下,我們需要從字典上獲取什么東西,才能實現(xiàn)上面三個功能呢?回顧總結一下三個要求:hRc28資訊網(wǎng)——每日最新資訊28at.com

  • 下拉框列表展示:項目統(tǒng)一格式是{ label: string; value: string }[]
  • 字典值匹配字典文本:怎么去匹配呢?其實使用map去匹配性能比較好
  • 其他用處:其實我們也不敢保證哪里會用到,所以需要保留字典原始數(shù)據(jù)

所以其實封裝字典,最重要的是封裝三個數(shù)據(jù):hRc28資訊網(wǎng)——每日最新資訊28at.com

  • 字典原始數(shù)據(jù)
  • 字典option格式數(shù)據(jù)
  • 字典map

并且,每個項目中所需要用到的字典也是不同的,比如 A 項目只需要用到 5 個字典,而 B 項目需要用到 10 個字典,所以也需要提供一個開關,讓項目自己去選擇需要哪些字典,而不是全量去請求字典hRc28資訊網(wǎng)——每日最新資訊28at.com

二、存在哪呢?

咱們的字典是需要狀態(tài)管理的,并響應渲染到對應的頁面上。hRc28資訊網(wǎng)——每日最新資訊28at.com

在現(xiàn)在的 Vue3 項目中,很多項目都會使用Pinia來進行狀態(tài)管理,小部分 Vue2 遷移 Vue3 的項目還是會繼續(xù)使用Vuex來進行狀態(tài)管理。hRc28資訊網(wǎng)——每日最新資訊28at.com

這兩個都是不錯的狀態(tài)管理工具,字典存在里面,其實都能達到我們想要的效果。hRc28資訊網(wǎng)——每日最新資訊28at.com

但是我們想一個問題,如果我們的字典數(shù)據(jù)封裝是基于Pinia或Vuex去封裝的,那就耦合在一起了,萬一以后項目用了其他的狀態(tài)管理工具呢?那是不是我又得基于這個狀態(tài)管理工具去封裝一套?而且就算是只有Pinia和Vuex,我也得封裝兩套,但是我覺得我只想封裝一套就夠了,兩套的話維護起來成本高。hRc28資訊網(wǎng)——每日最新資訊28at.com

所以啊,可以選擇另外的東西來進行狀態(tài)管理~我們不要去基于Pinia或Vuex去封裝,我們要基于Vue3去封裝,那么就只需要封裝一套了。hRc28資訊網(wǎng)——每日最新資訊28at.com

三、effectScope

effectScope是Vue3提供的一個 API ,effectScope 可以有兩個作用:hRc28資訊網(wǎng)——每日最新資訊28at.com

  • 收集副作用
  • 全局狀態(tài)管理

第一個作用不是我們本文章的重點,重點是第二個作用。hRc28資訊網(wǎng)——每日最新資訊28at.com

現(xiàn)在 Vue3 最火的全局狀態(tài)管理工具肯定是 Pinia 了,那么你們知道 Pinia 的原理是什么嗎?原理就是依賴了 effectScope:hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

所以我們完全可以自己使用 effectScope 來實現(xiàn)自己的局部狀態(tài)管理,比如我們封裝一個通用組件,這個組件層級比較多,并且需要共享一些數(shù)據(jù),那么這個時候肯定不會用 Pinia 這種全局狀態(tài)管理,而是會自己寫一個局部的狀態(tài)管理,這個時候 effectScope 就可以排上用場了。hRc28資訊網(wǎng)——每日最新資訊28at.com

vueuse 中的 createGlobalState 就是為了這個而生:hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

四、回到字典封裝

回到字典封裝,現(xiàn)在我們可以使用 effectScope來進行狀態(tài)管理存儲了,首先我們自己封裝一個useGlobalStatehRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

接著需要用這個函數(shù),來創(chuàng)建咱們的字典狀態(tài)管理,具體代碼如下,其實重點就在于,獲取某一個字典的時候,需要獲取這三個東西:hRc28資訊網(wǎng)——每日最新資訊28at.com

  • 原始數(shù)據(jù)
  • options
  • 映射對象map

hRc28資訊網(wǎng)——每日最新資訊28at.com

接著,我只需要在適當?shù)臅r機,去請求字典就行了,一般都是放在初始化的時候去獲取的:hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

可以看出我們獲取到了我們想要的字典,并且具備響應式渲染的效果:hRc28資訊網(wǎng)——每日最新資訊28at.com

hRc28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-60941-0.html為啥我放棄用 Pinia 和 Vuex 去做字典狀態(tài)管理呢?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 麻了,這讓人絕望的大事務提交

下一篇: 從錯誤中學習: 了解Go編程的六個壞習慣

標簽:
  • 熱門焦點
  • 官方承諾:K60至尊版將會首批升級MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會搭載天璣9200+處理器和獨顯芯片X7的同時,Redmi給出了官方承諾,K60至尊重大更新首批升級,會首批推送MIUI 15。也就是說雖然
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數(shù)據(jù)來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內(nèi)市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • JavaScript學習 -AES加密算法

    引言在當今數(shù)字化時代,前端應用程序扮演著重要角色,用戶的敏感數(shù)據(jù)經(jīng)常在前端進行加密和解密操作。然而,這樣的操作在網(wǎng)絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數(shù)據(jù)
  • 一個注解實現(xiàn)接口冪等,這樣才優(yōu)雅!

    場景碼猿慢病云管理系統(tǒng)中其實高并發(fā)的場景不是很多,沒有必要每個接口都去考慮并發(fā)高的場景,比如添加住院患者的這個接口,具體的業(yè)務代碼就不貼了,業(yè)務偽代碼如下:圖片上述代碼有
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨家獲悉,拼多多在其APP內(nèi)上線了“本地生活”入口,位置較深,位于首頁的“充值中心”內(nèi),目前主要售賣美食相關的
  • 得物寵物生意「狂飆」,發(fā)力“它經(jīng)濟”

    作者|花花小萌主近日,得物宣布正式上線寵物鑒別,通過得物App內(nèi)的“在線鑒別”,可找到鑒別寵物的選項。通過上傳自家寵物的部位細節(jié),就能收獲擁有專業(yè)資質(zhì)認證的得物鑒
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發(fā)布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • iQOO Neo8系列今日官宣:首發(fā)天璣9200+ 全球安卓最強芯!

    在昨日舉行的的聯(lián)發(fā)科新一代旗艦芯片天璣9200+的發(fā)布會上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品將全球首發(fā)搭載這款當前性能最強大的移動平臺
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項實用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡單來說就是已發(fā)布的朋友圈
Top 主站蜘蛛池模板: 汉阴县| 金乡县| 茂名市| 通化县| 黔江区| 江山市| 诸暨市| 霍林郭勒市| 沁阳市| 台南市| 惠来县| 凌海市| 镇坪县| 阿合奇县| 富平县| 吉林市| 鄱阳县| 隆昌县| 三台县| 永靖县| 汾阳市| 满城县| 清水县| 同德县| 昌江| 丘北县| 石屏县| 乐陵市| 临沭县| 花莲县| 府谷县| 新蔡县| 邓州市| 荥阳市| 岳普湖县| 汉寿县| 双辽市| 辉县市| 峨边| 肥乡县| 大埔县|