国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端進(jìn)階(11) - js 數(shù)據(jù)結(jié)構(gòu)類型擴(kuò)展:immutable-js

BLUE / 1374人閱讀

摘要:數(shù)據(jù)結(jié)構(gòu)類型擴(kuò)展相對(duì)之類的強(qiáng)類型語(yǔ)言,有一點(diǎn)很大的區(qū)別就是,數(shù)據(jù)結(jié)構(gòu)只有與,并且都是動(dòng)態(tài)可變的,而有等數(shù)據(jù)結(jié)構(gòu)。所以,為了能在中也使用這些數(shù)據(jù)結(jié)構(gòu),就應(yīng)運(yùn)而生。擴(kuò)充了中的不可變集合,即一旦創(chuàng)建就不能改變的數(shù)據(jù)類型。

js 數(shù)據(jù)結(jié)構(gòu)類型擴(kuò)展:immutable-js

相對(duì) java.net 之類的強(qiáng)類型語(yǔ)言,js 有一點(diǎn)很大的區(qū)別就是,數(shù)據(jù)結(jié)構(gòu)只有 arrayobject,并且都是動(dòng)態(tài)可變的,而 javaList, Set, Map 等數(shù)據(jù)結(jié)構(gòu)。所以,為了能在 js 中也使用這些數(shù)據(jù)結(jié)構(gòu),immutable-js 就應(yīng)運(yùn)而生。

1. immutable-js

immutable-js 擴(kuò)充了 JavaScript 中的不可變集合,即一旦創(chuàng)建就不能改變的數(shù)據(jù)類型。這樣可簡(jiǎn)化應(yīng)用開發(fā)、無(wú)防御復(fù)制、啟用更先進(jìn)的內(nèi)存方案,以及使用更簡(jiǎn)單的邏輯檢查更新。持久化數(shù)據(jù)提供可修改的 API,這些 API 不在原地更新數(shù)據(jù),而是產(chǎn)生新的更新后的數(shù)據(jù)。

2. 提供的數(shù)據(jù)類型

List: 有序索引集合,類似 JavaScript 中的 Array

Map: 無(wú)序鍵值對(duì)((key, value) pairs)集合

OrderedMap: 有序的 Map

Set: 無(wú)重復(fù)值的集合

OrderedSet: 有序的 Set

Stack: 支持元素添加和移除的索引集合

Range(): 返回一個(gè)從 startend,步長(zhǎng) step 填充的 Seq.Indexed 集合,start 默認(rèn)值為 0step 默認(rèn)值為 1end 默認(rèn)為無(wú)窮大。如果 start = end,則返回空集合。

Repeat(): 返回一個(gè)用 value 重復(fù) times 次的 Seq.Indexed 集合。如果 times 未定義,則返回?zé)o限 value 值的 Seq 集合。

Record: 類似于 JavaScript 的 Object,但是只接收特定字符串為 key,并有默認(rèn)值

Seq: 允許不通過中間集合讓高階集合函數(shù)(如 map, filter)高效鏈?zhǔn)秸{(diào)用的惰性操作集合

Collection: 所有數(shù)據(jù)結(jié)構(gòu)的基類

更多數(shù)據(jù)類型參考 immutable-js - docs.

3. 提供的 API 3.1 fromJS: 將一個(gè) js 數(shù)據(jù)轉(zhuǎn)換為 immutable-js 類型的數(shù)據(jù)
const { fromJS, isKeyed } = require("immutable@4.0.0-rc.9");
fromJS({ a: {b: [10, 20, 30]}, c: 40}, function (key, value, path) {
  console.log(key, value, path)
  return isKeyed(value) ? value.toOrderedMap() : value.toList()
})

> "b", [ 10, 20, 30 ], [ "a", "b" ]
> "a", {b: [10, 20, 30]}, [ "a" ]
> "", {a: {b: [10, 20, 30]}, c: 40}, []

詳情參考 immutable-js - docs - fromJS.

3.2 is: 對(duì)兩個(gè)對(duì)象進(jìn)行比較
const { Map, is } = require("immutable@4.0.0-rc.9")
const map1 = Map({ a: 1, b: 1, c: 1 })
const map2 = Map({ a: 1, b: 1, c: 1 })
assert.equal(map1 !== map2, true)
assert.equal(Object.is(map1, map2), false)
assert.equal(is(map1, map2), true)

詳情參考 immutable-js - docs - is.

3.3 更多

更多 API 參考 immutable-js - docs.

4. 后續(xù)

更多博客,查看 https://github.com/senntyou/blogs

作者:深予之 (@senntyou)

版權(quán)聲明:自由轉(zhuǎn)載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/97796.html

相關(guān)文章

  • immer.js 簡(jiǎn)介及源碼解析

    摘要:例如維護(hù)一份在內(nèi)部,來判斷是否有變化,下面這個(gè)例子就是一個(gè)構(gòu)造函數(shù),如果將它的實(shí)例傳入對(duì)象作為第一個(gè)參數(shù),就能夠后面的處理對(duì)象中使用其中的方法上面這個(gè)構(gòu)造函數(shù)相比源代碼省略了很多判斷的部分。 showImg(https://segmentfault.com/img/bV27Dy?w=1400&h=544); 博客鏈接:下一代狀態(tài)管理工具 immer 簡(jiǎn)介及源碼解析 JS 里面的變量類...

    Profeel 評(píng)論0 收藏0
  • 讀懂immutable-js中的Map數(shù)據(jù)結(jié)構(gòu)

    摘要:一向量字典樹字典樹,一種用空間換取時(shí)間的樹形數(shù)據(jù)結(jié)構(gòu),主要特點(diǎn)是利用字符串的公共前綴來挺升查詢性能。還有最終的數(shù)組表示的真實(shí)存儲(chǔ)的鍵值,存儲(chǔ)了,存儲(chǔ)了。這其中還有一種節(jié)點(diǎn)進(jìn)行了沖突的處理。 本文受深入探究Immutable.js的實(shí)現(xiàn)機(jī)制這篇文章啟發(fā),結(jié)合自己對(duì)Map源碼的解讀,談?wù)勎覍?duì)immutable-js中map數(shù)據(jù)結(jié)構(gòu)的理解,若有不正確的地方,歡迎指正。 一、Vector Tr...

    jone5679 評(píng)論0 收藏0
  • React性能優(yōu)化

    摘要:當(dāng)大家考慮在項(xiàng)目中使用的時(shí)候,第一個(gè)問題往往是他們的應(yīng)用的速度和響應(yīng)是否能和非版一樣,每當(dāng)狀態(tài)改變的時(shí)候就重新渲染組件的整個(gè)子樹,讓大家懷疑這會(huì)不會(huì)對(duì)性能造成負(fù)面影響。 當(dāng)大家考慮在項(xiàng)目中使用 React 的時(shí)候,第一個(gè)問題往往是他們的應(yīng)用的速度和響應(yīng)是否能和非 React 版一樣,每當(dāng)狀態(tài)改變的時(shí)候就重新渲染組件的整個(gè)子樹,讓大家懷疑這會(huì)不會(huì)對(duì)性能造成負(fù)面影響。React 用了一些黑...

    n7then 評(píng)論0 收藏0
  • 【連載】前端個(gè)人文章整理-從基礎(chǔ)到入門

    摘要:個(gè)人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開始萌生寫文章的想法,到著手...

    madthumb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<