欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

vue響應(yīng)式數(shù)據(jù)原理(vuejs響應(yīng)式基本原理)

軟件開放2年前 (2023-04-15)2685

今天給各位分享vue響應(yīng)式數(shù)據(jù)原理的知識(shí),其中也會(huì)對(duì)vuejs響應(yīng)式基本原理進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!

本文目錄一覽:

vue2數(shù)據(jù)響應(yīng)式原理

vue2響應(yīng)式原理由 Observer 類, Dep 類和 Watcher 類互相調(diào)用實(shí)現(xiàn), Observer 類是把一個(gè)普通的object類變成每一層都能相應(yīng)的類, Dep 類的作用是添加,移除,通知和收集訂閱者, Watcher 類是訂閱者,主要功能是把當(dāng)數(shù)據(jù)改變的時(shí)候,去調(diào)用回調(diào)函數(shù),修改dom節(jié)點(diǎn)

那么是怎么實(shí)現(xiàn)響應(yīng)式的呢,首先是一個(gè)函返源數(shù),要先轉(zhuǎn)換為可響應(yīng)的,那就需要用到 Observer 類

這個(gè) observe 函數(shù)就是對(duì) Observer 類做多了一層封裝

而 Observer 類是通過 Object.defineProperty 來監(jiān)控?cái)?shù)據(jù)的獲取和改變的

關(guān)鍵在于 defineReactive 方法,這個(gè)方法是對(duì) Object.defineProperty 做了一層封裝,并且對(duì)對(duì)象的每一層做遞歸調(diào)用,實(shí)現(xiàn)了每一層都有響應(yīng)監(jiān)控

但是漏褲態(tài)是怎么知道現(xiàn)在要保存哪一個(gè) Watcher 實(shí)例到訂閱者數(shù)組里面的呢?其實(shí)就是用了這個(gè) Dep.target , Dep.target 相當(dāng)于 window.target ,全局只有一個(gè),全局也能訪問

首先得先講一講 Watcher 類,我們先回到上面的index.js,對(duì)象要讓 Watcher 類進(jìn)行監(jiān)聽,而 Watcher 有3個(gè)參數(shù),第一個(gè)是監(jiān)聽的對(duì)象,第二個(gè)是監(jiān)聽的屬性,比如 a.b.c.d ,第三個(gè)是屬性改變后觸發(fā)的回調(diào)函數(shù)

先來講一下 parsePath ,這個(gè)在工具類里純悔,作用是訪問 a.b.c.d 這種鏈?zhǔn)綄傩?/p>

首先是觸發(fā)了 Watcher 的 get() 方法,把當(dāng)前實(shí)例保存在了 Dep.target 里面

然后在調(diào)用 parsePath 獲取屬性值的過程中,會(huì)挨個(gè)訪問響應(yīng)對(duì)象的屬性,就會(huì)觸發(fā)相應(yīng)的 getter ,我們回到 defineReactive.js ,可以發(fā)現(xiàn)這時(shí)候相應(yīng)屬性的 getter 就會(huì)把 Dep.target 也就是相應(yīng)的 Watcher 的實(shí)例保存在了 Dep 類的訂閱者數(shù)組里面

最后,在改變屬性的時(shí)候,相應(yīng)屬性的 setter 就會(huì)通知之前已經(jīng)保存的訂閱者數(shù)組,遍歷觸發(fā)回調(diào)

vue響應(yīng)式原理是什么?

當(dāng)一個(gè)vue實(shí)例加載時(shí),會(huì)進(jìn)行初始化,將他的配置項(xiàng)options和mixins的內(nèi)容合并,以options為主,而在初始化data時(shí),會(huì)對(duì)data對(duì)象進(jìn)行數(shù)據(jù)劫持,并做代理,通過Object。

definproperty劫持?jǐn)?shù)據(jù)后vue會(huì)查找當(dāng)前屬性有無依賴項(xiàng)既被watch,或者依賴當(dāng)前屬性的值,如果有,就會(huì)注冊(cè)依賴既deps,而注冊(cè)deps時(shí)會(huì)在wather內(nèi)添加新的更新目標(biāo)。

當(dāng)數(shù)據(jù)發(fā)生變更時(shí),會(huì)觸發(fā)deps的更新方法,調(diào)用所有的watcher,watcher又會(huì)觸發(fā)對(duì)應(yīng)deps的更新,直到所有依賴項(xiàng)更新完畢。

擴(kuò)展資料:

Vue 是一個(gè) MVVM框架,核心是雙向數(shù)據(jù)綁定,VM(視圖模型)是作為V(視圖)和M(模型)的橋梁。對(duì)Vue響應(yīng)式(雙向數(shù)據(jù)綁定)的理解,如果錯(cuò)誤盡請(qǐng)指出,一起交流,共同進(jìn)步。Vue響應(yīng)式原理核心是 數(shù)據(jù)劫持,采用春核空 ES5 的 object.defineproperty 的 getter 和 setter 方法。

Vue.js 最顯著的一個(gè)功能是響應(yīng)系統(tǒng) —— 模型只是普通對(duì)象,修改它則更新視圖。這讓狀態(tài)管理非常簡(jiǎn)單且直觀,不過理解它的原理也很重要,可以避免一些常見問題。下面我們開始深扒瞎挖 Vue.js 響應(yīng)系統(tǒng)的底層細(xì)節(jié)。

參考資料來氏橡源:百度百科-Vue·js前端開發(fā)技術(shù)

vue響應(yīng)式原理是什么?

vue響應(yīng)式基本原理是基于Object.defineProperty(obj,prop,descriptor),descriptor里面可以定義get和set方法,可以在獲取屬性值事觸發(fā)get方法(可以收集依賴),設(shè)置屬性值時(shí)觸發(fā)set方法(更新依賴)。Vue最獨(dú)特的特性之一,是其非侵轎搏入性的響應(yīng)式系統(tǒng)。數(shù)據(jù)模型僅僅是普通的JavaScript對(duì)象。而當(dāng)你修改它們時(shí),視圖會(huì)進(jìn)行更新。

vue響應(yīng)激鉛式系統(tǒng)

vue作為一個(gè)前端框架,近兩年非常的火,雖然它的社區(qū)不像react那樣繁榮,但它配套的東西都有固定的團(tuán)隊(duì)維護(hù),用起來更方便。它是MVVM模型的框架(不熟悉框架模型的同學(xué)可以看看阮一峰大神的博客,或者點(diǎn)這里),實(shí)現(xiàn)數(shù)據(jù)的雙向綁定,與其他框架相比vue非常的輕量級(jí),另一個(gè)重要的特點(diǎn)就是它的閉鉛祥響應(yīng)式系統(tǒng)。

能說說vue的響應(yīng)式原理嗎?

Vue 是一個(gè) MVVM 框架,核心是雙向數(shù)據(jù)綁定,VM(視圖模型)是作為 V(視圖) 和 M(模型)的橋梁。下面是對(duì) Vue 響應(yīng)式(雙向數(shù)據(jù)綁定)的理解,如果錯(cuò)誤盡請(qǐng)指出,一起交流,共同進(jìn)步。

Vue響應(yīng)式原理核心是 數(shù)據(jù)劫持,采用 ES5 的 object.defineproperty 的 getter 和 setter 方法。從一個(gè)例子出發(fā):

首先,在Vue初始化階段,通過 observer 對(duì) data 中的屬性進(jìn)行遞歸的劫持,包括 name、job_ undergo、a、b等

在 get階段也就是初始化視圖時(shí),為每一個(gè)劫持的屬性分配一個(gè) 依賴收集器,主要收集當(dāng)前屬性的觀察者對(duì)象,例子中 name 屬性在模板中有兩處被使用,那么 name 屬性的依賴收集器中就碰祥存放兩個(gè)觀察者對(duì)象

當(dāng)點(diǎn)擊按鈕時(shí),將 name 修改為 lisi 時(shí),會(huì)觸發(fā) observer 的 setter 函數(shù),將 value 更新為 lisi 最新值,然后通知依賴收集器州吵簡(jiǎn)數(shù)據(jù)發(fā)生了更新。

依賴收集就是發(fā)布訂閱模式,依賴收集器會(huì)冊(cè)褲通知所有的觀察者對(duì)象,當(dāng)前name 屬性有兩個(gè)觀察者對(duì)象。

觀察者對(duì)象調(diào)用對(duì)應(yīng)的回調(diào)函數(shù)進(jìn)行相關(guān)的處理和DOM更新

以上是純響應(yīng)式原理的分析和總結(jié),下面配一張流程圖:

vue響應(yīng)式數(shù)據(jù)原理的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于vuejs響應(yīng)式基本原理、vue響應(yīng)式數(shù)據(jù)原理的信息別忘了在本站進(jìn)行查找喔。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://m.landcheck.net/post/16909.html

“vue響應(yīng)式數(shù)據(jù)原理(vuejs響應(yīng)式基本原理)” 的相關(guān)文章

168開獎(jiǎng)極速賽車騙局全過程(168極速賽車開獎(jiǎng)的視頻)

168開獎(jiǎng)極速賽車騙局全過程(168極速賽車開獎(jiǎng)的視頻)

本篇文章給大家談?wù)?68開獎(jiǎng)極速賽車騙局全過程,以及168極速賽車開獎(jiǎng)的視頻對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、極速賽車的技巧怎么玩? 2、168極速賽車是哪個(gè)國(guó)家的 3、極速賽車買前5名的方法 4、168極速賽車來源于哪個(gè)國(guó)家 5、極速賽車有...

怎么自己搭建服務(wù)器(怎么自己搭建服務(wù)器連接)

怎么自己搭建服務(wù)器(怎么自己搭建服務(wù)器連接)

本篇文章給大家談?wù)勗趺醋约捍罱ǚ?wù)器,以及怎么自己搭建服務(wù)器連接對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何自己架設(shè)服務(wù)器 2、如何用自己的電腦搭建服務(wù)器 3、如何在家搭個(gè)小型服務(wù)器? 4、如何搭建自己的服務(wù)器 5、怎么用自己的電腦做服務(wù)器?...

怎樣卸載視頻號(hào)軟件(如何卸掉視頻號(hào))

怎樣卸載視頻號(hào)軟件(如何卸掉視頻號(hào))

本篇文章給大家談?wù)勗鯓有遁d視頻號(hào)軟件,以及如何卸掉視頻號(hào)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、怎么卸載微信上的視頻號(hào) 2、創(chuàng)建的視頻號(hào)怎么刪除 3、微信里怎么卸載視頻號(hào) 怎么卸載微信上的視頻號(hào) 視頻號(hào)卸載不了,可以通過通用——發(fā)現(xiàn)頁管理——關(guān)閉視頻號(hào)。...

海島奇兵官方網(wǎng)站昆侖(昆侖海島奇兵官網(wǎng)下載最新版本)

海島奇兵官方網(wǎng)站昆侖(昆侖海島奇兵官網(wǎng)下載最新版本)

本篇文章給大家談?wù)労u奇兵官方網(wǎng)站昆侖,以及昆侖海島奇兵官網(wǎng)下載最新版本對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、海島奇兵官方版在哪里下載,求個(gè)鏈接。以及官方版用什么賬號(hào)登陸 2、海島奇兵怎么登陸昆侖賬號(hào) 3、有誰玩手機(jī)網(wǎng)游海島奇兵?知道的回答,海島奇兵的官...

短信網(wǎng)頁在線轟炸源碼教程(在線短信驗(yàn)證碼轟炸網(wǎng)頁版)

短信網(wǎng)頁在線轟炸源碼教程(在線短信驗(yàn)證碼轟炸網(wǎng)頁版)

今天給各位分享短信網(wǎng)頁在線轟炸源碼教程的知識(shí),其中也會(huì)對(duì)在線短信驗(yàn)證碼轟炸網(wǎng)頁版進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、短信炸彈的短信炸彈 2、短信轟炸是什么意思? 3、最近被人轟炸了,好多垃圾短信,誰知道怎么轟炸人阿。求大神指教 4、短...