成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

vue中computed表示什么

在vue中,computed表示“計算屬性”,是根據依賴關系進行緩存的計算,只有在它的相關依賴發生改變時才會進行更新。computed的每一個計算屬性都會被緩存起來,只要計算屬性所依賴的屬性發生變化,計算屬性就會重新執行,視圖也會更新。computed計算屬性的結果會被緩存,除非依賴的響應式 property 變化才會重新計算。

vue中computed表示什么

本教程操作環境:windows7系統、vue3版,DELL G3電腦。

computed定義

computed是vue的計算屬性,是根據依賴關系進行緩存的計算,只有在它的相關依賴發生改變時才會進行更新

computed用法

一般情況下,computed默認使用的是getter屬性

vue中computed表示什么

computed的響應式依賴(緩存)

1. computed的每一個計算屬性都會被緩存起來,只要計算屬性所依賴的屬性發生變化,計算屬性就會重新執行,視圖也會更新。下面代碼中,計算屬性fullName,它依賴了firstNamelastName這兩個屬性,只要它們其中一個屬性變化,fullName就會重新執行。
2.computed計算屬性會被緩存,在下面代碼中使用了兩次fullName,但在控制臺只輸出了一次 “這是fullName”。

<template>   <div>     <div>       姓:<input type="text" v-model="firstName" />     </div>     <div>       名:<input type="text" v-model="lastName" />     </div>     <!-- 調用兩次fullName -->     <div>姓名:{{ fullName }}</div>     <div>姓名:{{ fullName }}</div>   </div> </template> <script> export default {   data() {     return {       firstName: "張",       lastName: "三",     };   },   computed: {     fullName() {         console.log("這是fullName");         return this.firstName + this.lastName;     }   } }; </script>

computed 的工作原理

要理解 computed 的工作原理,只需要理解下面三個問題

1、computed 也是響應式的

2、computed 如何控制緩存

3、依賴的 data 改變了,computed 如何更新

白話原理:

computed的響應性

不清楚什么是響應式,什么是訂閱者watcher?可以先了解Vue響應式原理。

簡單的說:

  • 你給 computed 設置的 get 和 set 函數,會與 Object.defineProperty 關聯起來。

  • 所以 Vue 能監聽捕捉到,讀取 computed 和 賦值 computed 的操作。

  • 在讀取 computed 時,會執行設置的 get 函數,但是并沒有這么簡單,因為還有一層緩存的操作。如果數據沒有被污染,不為臟數據,那將直接從緩存中取值,而不會去執行 get 函數。(什么是臟數據,后文中將會說到)

  • 賦值 computed 時,會執行所設置的 set 函數。這個就比較簡單,會直接把 set 賦值給 Object.defineProperty – set。

Computed 如何控制緩存

我們都知道,computed 是有緩存的,官方已經說明。

計算屬性的結果會被緩存,除非依賴的響應式 property 變化才會重新計算。注意,如果某個依賴 (比如非響應式 property) 在該實例范疇之外,則計算屬性是 不會 被更新的。

我們為什么需要緩存?假設我們有一個性能開銷比較大的計算屬性 A,它需要遍歷一個巨大的數組并做大量的計算。然后我們可能有其他的計算屬性依賴于 A 。如果沒有緩存,我們將不可避免的多次執行 A 的 get 函數。大量的計算將導致JS線程被占用,阻塞頁面的渲染。

那么在 Vue 中,computed 是如何判斷是否使用緩存的呢?

首先 computed 計算后,會把計算得到的值保存到一個變量(watcher.value)中。讀取 computed 并使用緩存時,就直接返回這個變量。當 computed 更新時,就會重新賦值更新這個變量。

TIP:computed 計算就是調用你設置的 get 函數,然后得到返回值。

computed 控制緩存的重要一點是 【臟數據標志位 dirty】 dirty 是 watcher 的一個屬性。

  • 當 dirty 為 true 時,讀取 computed 會執行 get 函數,重新計算。

  • 當 dirty 為 false 時,讀取 computed 會使用緩存。

緩存機制簡述

  • 一開始每個 computed 新建自己的 watcher時,會設置 watcher.dirty = true,以便于 computed 被使用時,會計算得到值

  • 當依賴的數據變化了,通知 computed 時,會賦值 watcher.dirty = true,此時重新讀取 computed 時,會執行 get 函數重新計算。

  • computed 計算完成之后,會設置 watcher.dirty = false,以便于其他地方再次讀取時,使用緩存,免于計算。

依賴的data變化,computed如何更新?

簡述Vue響應式原理

computed的本質與data相似。當被使用時,會為其建立訂閱者watcher,交給依賴項收集。如:當 A 引用 B 的時候,B 會收集 A 的watcher。

場景設置

現在 頁面A 引用了 computed B,computed B 依賴了 data C。

像是這樣,A->B->C 的依賴順序。

那么,當 data C 變化,會發生什么呢?

會是這樣嗎?

  • 通知 computed B 更新,然后 computed B 開始重新計算。

  • 接著 computed B 通知 頁面A更新,然后重新讀取 computed。

一條鏈式的操作? C -> B -> A 這樣的執行順序嗎?

答案是否定的。

其實真正的流程是,data C 開始變化后…….

  • 通知 computed B 的 watcher 更新,只會重置 臟數據標志位 dirty =true,不會計算值。

  • 通知 頁面 A watcher 進行更新渲染,進而重新讀取 computed B ,然后 computed B 開始重新計算。

vue中computed表示什么

為什么 data C 能通知 頁面 A?

data C 的依賴收集器會同時收集到 computed B 和 頁面 A 的 watcher。

為什么 data C 能收集到 頁面A 的watcher?

在 頁面 A 在讀取 computed B 的時候,趁機把 頁面A 的watcher塞給了 data C ,于是 頁面A watcher 和 data C 間接地關聯在了一起,于是 data C 就會收集到 頁面A watcher。

至于具體的代碼是怎么實現的,將會在下文源碼分析中講解。

所以computed 如何更新?

被依賴通知更新后,重置 臟數據標志位 ,頁面讀取 computed 時再更新值。

白話總結

  • computed 通過 watcher.dirty 控制是否讀取緩存。

  • computed 會讓 【data依賴】 收集到 【依賴computed的watcher】,從而 data 變化時,會同時通知 computed 和 依賴computed的地方。

【相關視頻教程推薦:vuejs入門教程、web前端入門】

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲AV成人片无码www电影| 亚洲AV自慰白浆喷水网站| 无码人妻少妇伦在线电影 | 美女裸体无遮拦国产兔费网站| 免费无码成人AV片在线| 人妻少妇乱子伦精品无码专区毛片 | 欧美一区二区三区孕妇精品| 色诱视频在线观看| 亚洲 日韩 欧美 成人 在线| 亚洲熟妇人妻系列| 91人人妻人人做人人爱| 成人乱婬AV日日摸夜夜爽| 国产精品无码MV在线观看| 精品少妇无码AV无码专区蜜臀| 麻豆传播媒体APP大全免费版| 人妻少妇精品视中文字幕国语| 无码AV中文字幕久久专区| 亚洲欧美一区二区三区| 99精品国产高清一区二区麻豆| 公交车被多男摁住灌浓精 | 成人影院YY111111在线| 国产在线成人一区二区三区| 老太奶性BBWBBW| 日韩麻豆乱婬一区二区三区| 亚洲AV无码不卡在线观看下载| 尤物AV无码色AV无码| 拔萝卜视频免费观看高清下载| 国产精品扒开腿做爽爽爽日本无码 | 西西444WWW无码大胆| 伊人热热久久原色播放WWW| 白丝老师用腿夹得我好爽的视频| 国产伦精品一区二区三区| 久久久久夜夜夜精品国产 | 大地韩国日本HD免费完整| 韩国乱码片免费看| 哦┅┅快┅┅用力啊┅┅| 我的风流岳每2部集第| 婬乱丰满熟妇XXXXX性| 厨房掀开馊了裙子挺进电影 | 亚洲色欲色欲综合网站| JIZZJIZZ日本人妻| 国产又色又刺激高潮视频| 男人操女人视频图片日韩| 无卡无码无免费毛片| 在线观看AV网站永久免费观看| 丰满圆润大胸在线| 久久久一本精品99久久精品88 | 亚洲成AV人片在WWW鸭子| 99久久精品国产综合| 国产免费无遮挡吃奶视频| 浓精喷进老师黑色丝袜| 西西人体44WWW高清大胆| 111111少妇影院| 国产免费AV片在线观看| 欧美极品少妇XXXXⅩ喷水| 亚洲AV秘 无码一区二区三l| JAPANESE厨房乱TUB偷| 精品动漫一区二区无遮挡| 日本一区二区三区免费播放 | 久久久精品人妻一区二区三区蜜桃 | 亚洲人成电影在线观看天堂色| 成人午夜亚洲精品无码区毛片| 久久AV伊人蜜臀一区二区| 色嗨嗨AV一区二区三区| 伊人成年网站综合网| 国产成人综合在线视频| 欧美黑人极品猛少妇色XXXXⅩ| 亚洲不卡AV不卡一区二区| 成人精品天堂一区二区三区 | 天天摸天天透天天添| 99精品久久久久久久婷婷| 幻女FREE性俄罗斯毛片福| 日本亚洲色大成网站WWW| 夜夜躁狠狠躁日日躁2002| 国产精品美女久久久M| 欧美日韩一区精品视频一区二区| 亚洲欧洲AV综合一区二区三区 | 天天看AV片在线观看| AV最新高清无码专区| 久久99青青精品免费观看| 玩弄丰满熟妇XXXXX性HD| 99久久人妻精品免费一区| 九九久久精品国产免费看小说| 天美传媒国色天香乱码| WWW久久久天天COM| 看久久久久久A级毛片| 亚洲AVSSS在线观看| 嗯啊开小嫩苞HHH好深男男| 欧美 国产 综合 欧美 视频| 亚洲视频无码高清在线| 国产午夜成人AV在线播放| 日日摸夜夜摸狠狠摸婷婷| 99热久RE这里只有精品小草| 久久久久人妻一区二区三区 | 久久五月精品中文字幕| 亚洲成AV人片在WWW色猫咪| 国产精品毛片VA一区二区三区| 日本一区二区三区免费播放| 99久久精品费精品国产| 乱码人妻一区二区三区| 亚洲日韩精品欧美一区二区一| 国产一产二产三精华液区别在哪| 四季AV无码专区AV| 成人无码小视频在线观看| 欧美性猛交XXXX黑人猛交| 中文无码日韩欧免费视频APP| 久久精品人人做人人爽老司机| 亚洲成AV人在线视| 国产情侣一区二区| 无人区一码二码乱码区别在哪| 丰满人妻被黑人中出849| 日本熟妇人妻XXXXX野外呻| CSGO大姐姐AWP多少钱| 女人下边被添全过视频| 中国少妇毛多水多BXⅩ| 另类老妇性BBWBBW| 伊人久久大香线蕉AV影院| 久久久久国色AV免费观看| 亚洲色老汉AV无码专区最| 娇妻玩4P被3个男子伺候| 亚洲国产成人AV人片久久| 极品少妇被猛的白浆直喷白浆| 亚洲AV永久无码精品主页丝瓜 | 亚洲AV永久无无码精品一区二区| 国精产品一区一区三区糖心| 西西人体444www大胆无码视频| 国产麻豆剧传媒精品国产AV| 五十老熟妇乱子伦免费观看| 国产男男GAY做受ⅩXX软件| 无码中文AV波多野结衣| 国产精口品美女乱子伦高潮| 天堂SV在线最新版在线| 国产精品99精品无码视亚| 无码AV免费不卡在线观看| 国产乱码一二三区精品| 亚洲 日本 欧美 中文幕| 护士HD老师FREE性ⅩⅩⅩⅩ| 亚洲精品亚洲人成在线观看麻豆| 精产国品一二三产区M553| 亚洲啪啪AV无码片| 巨大黑人一级毛片| 43417大但人文艺术| 强奷漂亮饱满雪白少妇AV| 成熟丰满熟妇高潮XXXXX| 四虎永久在线精品免费一区二区 | 亚洲人成绝网站色WWW| 久久久久亚洲精品无码网址蜜桃| 伊人久久大香线蕉AV色婷婷色| 妺妺窝人体色WWW网| 吧唧吧唧吧唧一口一口吃掉了| 日日AV色欲香天天综合网| 国产精品久久久久精品香蕉| 亚洲AV无码专区色爱天堂老鸭 | 国产免费AV一区二区三区| 亚洲韩国精品无码一区二区三区| 久久精品人妻系列无码专区| 中文字幕乱理片人妻无码888| 欧美牲交视频免费观看| 放荡爆乳女教师电影在线观看| 无人区码一码二码三码医生系列| 精品国产AⅤ一区二区三区在线看| 亚洲最大的av网站| 欧美私人家庭影院| 国产成人无码专区| 亚洲国产婷婷综合在线精品| 老奶奶BGMBGM人与自然| 锕锕锕锕锕锕锕好疼免费看网站| 四川妇女BBBWBBBWM| 荷兰肥妇BBWBBWBBW| 中国西西大胆女人裸体艺术| 人妖CHINESECDTS在线| 国产乱码一区二区三区爽爽爽| 亚洲人成亚洲人成在线观看| 欧美男男作爱GAYWWW| 国产激情久久久久影院老熟女免费 | 无码人妻一区二区三区密桃手机版| 精品久久一区二区乱码| AⅤ精品一区二区三区| 玩弄人妻少妇500系列网址| 精品无码国产一区二区三区51安 | 国产一区二区三区小说| 中文无码熟妇人妻AV在线| 少妇人妻中文字幕| 精品久久久久中文字幕APP| CHINESE玩弄老年熟女| 午夜私人电影院在线观看| 开丫头小嫩苞疼死了| 纯肉无遮挡H肉动漫在线观看网址 纯肉无遮挡H肉动漫在线观看国产 | 欧美性猛交XXXX黑人猛交| 国产精品久久久久久久久久直播 | 欧美日韩国产成人高清视频| 国产成人无码精品久久久露脸 | 亚洲熟妇无码八AV在线播放| 人妻无码ΑV中文字幕久久琪琪布| 国产午夜精品一区二区三区极品| 在线天堂资源WWW在线中文| 私はあなたのおさんです怎么读| 久久99精品久久久久久不卡| 成人免费无码大片A毛片抽搐 | ぱらだいす天堂官网链接|