亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

不可變數(shù)據(jù)方案之immer.js原理解析

瀏覽:2日期:2022-06-01 14:57:21
目錄
  • 前言
  • 了解 immer.js
  • immer.js 原理
  • 總結(jié)

前言

本篇文章是JavaScript 函數(shù)式編程 學(xué)習(xí)系列第三篇,感興趣也可以先去看看前兩篇內(nèi)容:

  • 一文理解JavaScript中的函數(shù)式編程的概念
  • JavaScript數(shù)據(jù)類型對函數(shù)式編程的影響

前一篇 JavaScript數(shù)據(jù)類型對函數(shù)式編程的影響 講到了不可變數(shù)據(jù)的重要性,而讓數(shù)據(jù)不可變的原理就是 “拷貝數(shù)據(jù)”。

但如果拷貝的是一個(gè)樹形結(jié)構(gòu),層次比較深,看是一個(gè)對象,但實(shí)際上里面有上百個(gè)對象,比如:

// 某某公司組織架構(gòu)
const org = {
    name: "某某公司",
    children: [
{ name: "研發(fā)部", children: [{ name: "張三" }, { name: "李四" }] },
{ name: "產(chǎn)品部", children: [{ name: "王五" }] },
// 省略 10 個(gè)部門,每個(gè)部門 10 個(gè)人
    ]
}

這個(gè) org 數(shù)據(jù)中的 children 是 Array 類型的對象,children 里面的部門一個(gè)是一個(gè)基本對象,然后再往下又是 Array 對象 ...... ,上面結(jié)構(gòu)看起來還很簡單,但實(shí)際上寫出來的都有了 9 個(gè)對象,如果這個(gè)組織有一百個(gè)人,至少 100 多個(gè)對象,如果為了保持?jǐn)?shù)據(jù)不可變,每次修改對象,都要對整個(gè) org 進(jìn)行拷貝的話,那么操作個(gè)幾十次上百次,很容易造成性能問題,要是原始的數(shù)據(jù)意外沒有銷毀的話,還容易造成內(nèi)存泄露(這是我曾經(jīng)剛出來工作一兩年干過的事情,操作一個(gè)增刪改查的列表頁,沒操作幾次,瀏覽器就變卡了,到后面必須得重新刷新頁面

標(biāo)簽: JavaScript
主站蜘蛛池模板: 欧美日韩在线一本卡 | 一级中国乱子伦视频 | 国产黄色一级 | 久久乐国产精品亚洲综合18 | 日韩在线精品视频 | 国产特级 | 国产成人亚洲精品 | 亚洲精品网站在线观看不卡无广告 | 精品国产自在2o18 | 日韩成人精品视频 | 久久免费精品视频在线观看 | 国内色视频 | 精品亚洲永久免费精品 | 被公侵犯肉体中文字幕一区二区 | 99国产成+人+综合+亚洲 欧美 | 国产又黄又爽又色视频免费观看 | 亚洲国产人久久久成人精品网站 | 亚洲欧美日本综合一区二区三区 | 国产在线观看网址你懂得 | 全黄一级裸片视频免费 | 国产成人亚洲精品91专区手机 | 成人影院免费www | 97青青草视频 | 精品五夜婷香蕉国产线看观看 | 国产精品免费精品自在线观看 | 在线观看亚洲国产 | 免费国产不卡午夜福在线 | 一级特黄aaa大片在线观看 | 久久一区二区三区99 | 欧美日韩精品一区二区三区 | 97欧美在线看欧美视频免费 | 色天天影视 | 国产黄网站 | 国产精品久久久久久一区二区 | 亚洲区视频 | 一区二区三区在线观看免费 | 一级黄色免费网站 | 国产一区在线视频观看 | 成在线人永久免费播放视频 | 久久精品嫩草影院 | 亚洲国产一成人久久精品 |