欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Immer如何使用

今天小編給大家分享一下Immer如何使用的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

河池網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

Immer本身也得到了廣泛關(guān)注和認(rèn)可,在Redux最新推薦的Redux Toolkit 中就集成了Immer

Immer并不會(huì)對(duì)原有的狀態(tài)數(shù)據(jù)進(jìn)行直接更改,這樣就保持了不可變性,但是在使用語(yǔ)法上卻是直接賦值,注意如圖所示,直接賦值的對(duì)象并不是原有的狀態(tài)數(shù)據(jù),而是另一個(gè)Draft對(duì)象。

 const nextState = baseState.slice() // 淺拷貝

 nextState[1] = {

     // 替換元素

     …nextState[1], // 淺拷貝位置1的元素

     done: true // 修改

 }

 nextState.push({title: "Tweet about it"})

假如數(shù)據(jù)結(jié)構(gòu)層次很深,同時(shí)又不想做范式化,因?yàn)橐恍I(yè)務(wù)場(chǎng)景范式化后的數(shù)據(jù)在使用時(shí)也還是要整合起來(lái),不如直接使用樹(shù)狀數(shù)據(jù)來(lái)的方便,此時(shí)修改數(shù)據(jù)簡(jiǎn)直就是噩夢(mèng),所以Immer針對(duì)的就是這種情況,它僅僅是處理了復(fù)雜數(shù)據(jù)的更新,并不涉及到副作用,以下例子摘自Immer官網(wǎng)

 import produce from "immer"

 const nextState = produce(baseState, draft => {

     draft[1].done = true

     draft.push({title: "Tweet about it"})

 })

可以看到,現(xiàn)在要得到更新后的狀態(tài)非常方便了,但如同剛才所說(shuō)的一樣,Immer也僅僅只是半自動(dòng)化,不涉及副作用,所以一般最后我們還是要調(diào)用setState 或者其他的操作來(lái)完成最終的業(yè)務(wù)目的。

安裝

 npm install immer

要注意的是如果想要得到額外的支持,還需要調(diào)用一些引入API,同時(shí)打包結(jié)果也會(huì)變大

支持 調(diào)用

支持ES5 enableES5()

支持Map和Set數(shù)據(jù)結(jié)構(gòu) enableMapSet()

支持JSON Patch enablePatches()

以上所有都想支持 enableAllPlugins()

用法

 // 在應(yīng)用的入口處

 import {enableMapSet} from "immer"

 enableMapSet()

 // …稍后

 import produce from "immer"

 const usersById_v1 = new Map([

     ["michel", {name: "Michel Weststrate", country: "NL"}]

 ])

 const usersById_v2 = produce(usersById_v1, draft => {

     draft.get("michel")。country = "UK"

 })

 const usersById_v3 = produce(usersById_v1, draft => {

     draft.set("michel", {name: "Michel Weststrate", country: "NL"})

 })

使用produce

Immer的要點(diǎn)就在于produce的使用,它的簽名如下

 produce(currentState, recipe: (draftState) => void): nextState

注意這些名稱(chēng)

produce

recipe

draftState / draft

producer

…

這些名稱(chēng)沒(méi)法硬翻,或者翻譯后失去味道,只能靠揣摩和感悟

一個(gè)produce的HW代碼如下

 import produce from "immer"

 const baseState = [

     {

         title: "Learn TypeScript",

         done: true

     },

     {

         title: "Try Immer",

         done: false

     }

 ]

 const nextState = produce(baseState, draftState => {

     draftState.push({title: "Tweet about it"})

     draftState[1].done = true

 })

對(duì)了,HW不是華為,是Hello World

以上就是“Immer如何使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站欄目:Immer如何使用
網(wǎng)頁(yè)網(wǎng)址:http://aaarwkj.com/article6/jjijig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、網(wǎng)站制作、Google、品牌網(wǎng)站設(shè)計(jì)定制開(kāi)發(fā)、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
偷拍一区二区三区四区| 五月婷婷综合中文字幕在线| 99国产精品欲av麻豆在线观看| 欧美日本精品在线观看| 刘亦菲毛片一区二区三区| 91看看午夜福利视频| 大片天天看菲色亚洲黄色| 啊啊啊用力好大视频| 国产精品三级玖玖玖电影| 久久99精品久久久国产| 久久香蕉国产线看观看亚洲| 丰满少妇一级淫片在线播放| 日本人妻系列在线播放| 欧美日韩免费高清视视频| 国自产偷精品不卡在线观看| 丰满肥臀熟女高清区二区| 欧美在线免费黄片视频| 欧美日韩视频在线第一页| 丰满人妻一区二区三区色| 亚洲一区欧美日韩91| 亚洲精品av一区二区久久| 国产熟女真实乱精品视频| 一区二区蜜桃在线观看| 综合久久久精品国产亚洲av| 婷婷五五月深爱开心激情| 久久夜色一区二区三区| 人妻少妇久久中文字幕韩| 性生活自制视频网站麻豆| 成人做爰片免费看视频| 国语av一区二区三区| 成人免费大片在线观看视频| 97视频精品在线播放| 日韩国产人妻一区二区| 高清日韩精品视频在线观看| 日韩黄色精品中文视频| 夫妻性生活视频一级片| 日本一区二区不卡二区| 国产日韩亚洲欧美在线| 国产高跟丝袜女王调教| 国产日韩精品综合一区| 人妻av一区二区三区|