gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

vue中computed表示什么

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

vue中computed表示什么

本教程操作環(huán)境:windows7系統(tǒng)、vue3版,DELL G3電腦。

computed定義

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

computed用法

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

vue中computed表示什么

computed的響應(yīng)式依賴(緩存)

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

<template>   <div>     <div>       姓:<input type="text" v-model="firstName" />     </div>     <div>       名:<input type="text" v-model="lastName" />     </div>     <!-- 調(diào)用兩次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 也是響應(yīng)式的

2、computed 如何控制緩存

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

白話原理:

computed的響應(yīng)性

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

簡單的說:

  • 你給 computed 設(shè)置的 get 和 set 函數(shù),會與 Object.defineProperty 關(guān)聯(lián)起來。

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

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

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

Computed 如何控制緩存

我們都知道,computed 是有緩存的,官方已經(jīng)說明。

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

我們?yōu)槭裁葱枰彺妫考僭O(shè)我們有一個性能開銷比較大的計算屬性 A,它需要遍歷一個巨大的數(shù)組并做大量的計算。然后我們可能有其他的計算屬性依賴于 A 。如果沒有緩存,我們將不可避免的多次執(zhí)行 A 的 get 函數(shù)。大量的計算將導(dǎo)致JS線程被占用,阻塞頁面的渲染。

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

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

TIP:computed 計算就是調(diào)用你設(shè)置的 get 函數(shù),然后得到返回值。

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

  • 當(dāng) dirty 為 true 時,讀取 computed 會執(zhí)行 get 函數(shù),重新計算。

  • 當(dāng) dirty 為 false 時,讀取 computed 會使用緩存。

緩存機制簡述

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

  • 當(dāng)依賴的數(shù)據(jù)變化了,通知 computed 時,會賦值 watcher.dirty = true,此時重新讀取 computed 時,會執(zhí)行 get 函數(shù)重新計算。

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

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

簡述Vue響應(yīng)式原理

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

場景設(shè)置

現(xiàn)在 頁面A 引用了 computed B,computed B 依賴了 data C。

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

那么,當(dāng) data C 變化,會發(fā)生什么呢?

會是這樣嗎?

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

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

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

答案是否定的。

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

  • 通知 computed B 的 watcher 更新,只會重置 臟數(shù)據(jù)標志位 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 間接地關(guān)聯(lián)在了一起,于是 data C 就會收集到 頁面A watcher。

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

所以computed 如何更新?

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

白話總結(jié)

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

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

【相關(guān)視頻教程推薦:vuejs入門教程、web前端入門】

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
欧美精品 - 色网| 成年人观看网站| 蜜臀视频一区二区三区| 欧美,日韩,国产在线| 欧美视频在线观看视频| 精品国产一区二区三区无码| 欧美a级免费视频| av动漫在线免费观看| 欧美国产视频一区| 久久国产午夜精品理论片最新版本| 性鲍视频在线观看| 911av视频| 狠狠干视频网站| 欧美日韩一道本| 99视频在线免费| 人人干人人视频| www.亚洲自拍| 日韩欧美国产综合在线| 欧美xxxxx在线视频| 污污网站在线观看视频| 91pony九色| 加勒比成人在线| 无码少妇一区二区三区芒果| av中文字幕网址| cao在线观看| 手机在线免费观看毛片| www.-级毛片线天内射视视| 国产女主播自拍| 亚洲不卡视频在线| 黄色影视在线观看| 日本在线视频www| 国产91视频一区| 青青青在线视频免费观看| 国产精品探花在线播放| 久久久久久久久久网| 热久久精品免费视频| 亚洲区成人777777精品| 白嫩少妇丰满一区二区| 久久久99精品视频| 成人免费在线观看视频网站| 97在线免费视频观看| 中文字幕永久视频| 黄色影院一级片| 黄色影视在线观看| 黄色三级视频在线| 国产午夜福利在线播放| 国产免费xxx| 亚洲美女爱爱视频| 凹凸日日摸日日碰夜夜爽1| 美女黄色片网站| gai在线观看免费高清| 国产二级片在线观看| 欧美少妇一级片| 色播五月综合网| 国产成人手机视频| 国产美女三级视频| 国内精品视频一区二区三区| 欧美a级黄色大片| 亚洲免费av网| www.色就是色.com| 99国产精品久久久久久| 色播五月综合网| 我要看一级黄色大片| 成人黄色一区二区| 国产又猛又黄的视频| 国产免费视频传媒| 成年人网站大全| 牛夜精品久久久久久久| 男女污污的视频| 午夜在线观看av| 色噜噜狠狠一区二区| 国产在线观看中文字幕| 欧洲在线免费视频| 成年人免费观看的视频| 2021狠狠干| 91精品国产91久久久久麻豆 主演| 97在线免费视频观看| www.好吊操| 日韩av资源在线| 高清av免费看| 久久久久久久久影视| 日本美女爱爱视频| 亚洲人精品午夜射精日韩| 午夜肉伦伦影院| 午夜一区二区视频| 日本久久高清视频| 97视频久久久| 在线观看的毛片| 美女av免费观看| 国产性xxxx18免费观看视频| 国产成人黄色网址| 91网站在线观看免费| 波多野结衣家庭教师视频| 日韩大片一区二区| 成人一区二区av| 少妇高清精品毛片在线视频| 日本一二区免费| 国产美女永久无遮挡| 一区二区三区国产免费| 国产911在线观看| 国产一区亚洲二区三区| 日韩高清第一页| 日韩中字在线观看| 中文字幕55页| 黑鬼大战白妞高潮喷白浆| 国产精品一二三在线观看| 日韩 欧美 高清| 久草视频国产在线| 日韩一级免费片| 日韩精品视频久久| 日韩视频 中文字幕| 美女网站免费观看视频| www精品久久| 自拍一级黄色片| 男女爽爽爽视频| 国产乱子伦农村叉叉叉| 亚洲区成人777777精品| 欧美一级xxxx| 超碰在线公开97| 国产女女做受ⅹxx高潮| 国产精品一色哟哟| 三上悠亚免费在线观看| 午夜不卡福利视频| 韩国中文字幕av| 国产精品亚洲a| 凹凸日日摸日日碰夜夜爽1| 国产精品无码免费专区午夜| www.色就是色.com| 中文av字幕在线观看| 日韩中文字幕a| 国产又大又黄又粗又爽| 无码日韩人妻精品久久蜜桃| 天天影视综合色| 亚洲这里只有精品| 成人日韩在线视频| 亚洲天堂网站在线| 欧美日韩在线免费观看视频| 最新中文字幕久久| 国内外成人激情免费视频| 精品91一区二区三区| 潘金莲一级淫片aaaaaa播放1| 黄色一级视频播放| 美女扒开大腿让男人桶| 久久综合色视频| 国产无套粉嫩白浆内谢的出处| 国产欧美高清在线| 精品日韩久久久| 免费观看黄色的网站| 日韩欧美精品免费| 青青在线视频免费| 中文字幕一区二区在线观看视频| 免费不卡av网站| 久久黄色片视频| 亚洲va综合va国产va中文| 国产女主播av| 久久婷婷国产精品| www.51色.com| 国产精品无码人妻一区二区在线| 久久久久狠狠高潮亚洲精品| 天天干天天玩天天操| 日本一区午夜艳熟免费| 男女视频一区二区三区| 国产亚洲精品久久久久久久| 中文字幕日本最新乱码视频| 天天干天天av| 久久国产精品视频在线观看| 欧美成人福利在线观看| 国产高清av在线播放| 欧美视频国产视频| 伊人成色综合网| 男人j进女人j| jizz18女人| 黄色动漫网站入口| 一本—道久久a久久精品蜜桃| 无码aⅴ精品一区二区三区浪潮 | 免费观看精品视频| 亚洲天堂网站在线| 18岁视频在线观看| 91成人在线观看喷潮教学| www.久久久精品| av天堂永久资源网| 成品人视频ww入口| 樱空桃在线播放| 伊人网在线综合| 久久久久久久片| 黄色免费视频大全| www.亚洲视频.com| 国产又黄又爽免费视频| 天天色天天综合网| 一区二区免费av| 久久久精品麻豆| 韩国中文字幕av| 亚洲高清在线免费观看| 91在线视频观看免费| 国产亚洲综合视频| a在线视频观看| 久久精品国产精品亚洲色婷婷| 精品久久久久久无码中文野结衣| 国产一区二区三区在线免费| 9l视频自拍9l视频自拍|