最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue如何修改data中的obj數(shù)據(jù)的屬性

 更新時間:2022年08月03日 11:16:32   作者:乾復(fù)道  
這篇文章主要介紹了vue如何修改data中的obj數(shù)據(jù)的屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

修改data中的obj數(shù)據(jù)的屬性

//方法一
var obj = this.obj;
obj.name = 'long';
this.obj = obj;
//方法二
Vue.set(this.obj, "password", "num");
//part1,要修改的obj對象;
//part2,要添加或者修改的屬性;
//part3,修改值;

修改data以實現(xiàn)數(shù)據(jù)響應(yīng)式

Vue為了實現(xiàn)在數(shù)據(jù)變化時對頁面重新渲染。所以在初始化時對傳進來來的數(shù)據(jù)對象進行監(jiān)聽。

怎么保證你的變化我Vue能監(jiān)聽到?

監(jiān)聽的操作就是:對數(shù)據(jù)對象的每一個數(shù)據(jù),內(nèi)部內(nèi)部聲明一個變量,存儲這個傳進來的初始值,然后開始了代理模式。后續(xù)對這個數(shù)據(jù)的讀取和修改,實際都是對這個內(nèi)部變量的getter和setter。由此所有的修改都會經(jīng)過setter,那么只需要setter的時候觸發(fā)監(jiān)聽函數(shù),渲染頁面即可。

當(dāng)你把一個普通的 JavaScript 對象傳入 Vue 實例作為 data 選項,Vue 將遍歷此對象所有的 property,并使用 Object.defineProperty 把這些 property 全部轉(zhuǎn)為 getter/setter。

每個組件實例都對應(yīng)一個 watcher 實例,它會在組件渲染的過程中把“接觸”過的數(shù)據(jù) property 記錄為依賴。之后當(dāng)依賴項的 setter 觸發(fā)時,會通知 watcher,從而使它關(guān)聯(lián)的組件重新渲染。

那么返回給外部的,實際是一個經(jīng)過篡改的,經(jīng)過了代理的數(shù)據(jù)對象。

如果初始值沒給這個變量Vue還能監(jiān)聽嗎?

這里面有個新手易犯的問題是:一開始傳進數(shù)據(jù)對象時忘記傳這個變量或無法傳這個變量。

由于 JavaScript 的限制,Vue 不能檢測數(shù)組和對象的變化。

如果后面使用了這個變量,那么后面對這個變量進行更新時頁面不會變化的,因為vue根本沒監(jiān)聽這個對象。

解決辦法:

(1)一開始就傳入這個變量;

(2)對于對象:使用Vue.set或vm.$ set在使用之前監(jiān)聽變量;

(3)對于數(shù)組,除了使用對象的Vue.set或和vm.$set 方法。尤雨溪其實對數(shù)組的如下方法進行了封裝,使用這些方法的時候已經(jīng)進行了set監(jiān)聽。

  • push()
  • pop()
  • shift()
  • unshift()
  • splice()
  • sort()
  • reverse()

有一個神奇的測試題:

<div id="app">
? ? <span class=span-a>
? ? ? {{obj.a}}?
? ? </span>
? ? <span class=span-b>
? ? ? {{obj.b}}
? ? </span>
? </div>
var app = new Vue({
? el: '#app',
? data: {
? ? obj: {
? ? ? a: 'a',
? ? }
? },
})
app.obj.a = 'a2'
app.obj.b = 'b'

最終 span-a 和 span-b 中分別展示什么字符串?答案是:a2和b

原因是視圖在顯示 span-a 的 a2 時,順便更新了 span-b

視圖更新其實是異步的。

1、當(dāng)我們讓 a 從 ‘a1’ 變成 ‘a2’ 時,Vue 會監(jiān)聽到這個變化,但是 Vue 并不能馬上更新視圖,因為 Vue 是使用 Object.defineProperty 這樣的方式來監(jiān)聽變化的,監(jiān)聽到變化后會創(chuàng)建一個視圖更新任務(wù)到任務(wù)隊列里。(文檔有寫)

2、所以在視圖更新之前,要先把余下的代碼運行完才行,也就是會運行 b = ‘b’。

3、等到視圖更新的時候,由于 Vue 會去做 diff(文檔有寫),于是 Vue 就會發(fā)現(xiàn) a 和 b 都變了,自然會去更新 span-a 和 span-b。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 在vue中使用echarts實現(xiàn)飛機航線水滴圖詞云圖效果

    在vue中使用echarts實現(xiàn)飛機航線水滴圖詞云圖效果

    這篇文章主要介紹了在vue中使用echarts實現(xiàn)飛機航線?水滴圖?詞云圖,通過引入中國地圖JS文件,會自動注冊地圖,文中結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • 詳解vue的數(shù)據(jù)binding綁定原理

    詳解vue的數(shù)據(jù)binding綁定原理

    這篇文章主要介紹了詳解vue的數(shù)據(jù)binding原理介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Vue3實現(xiàn)clipboard復(fù)制的使用示例

    Vue3實現(xiàn)clipboard復(fù)制的使用示例

    在日常開發(fā)中,為用戶提供復(fù)制文本功能的需求比較常見,下面介紹一款vue3可用的插件,可以快速實現(xiàn)這個功能,感興趣的可以了解一下
    2023-11-11
  • vue實現(xiàn)網(wǎng)易云音樂純界面

    vue實現(xiàn)網(wǎng)易云音樂純界面

    這篇文章主要為大家介紹了vue實現(xiàn)網(wǎng)易云音樂純界面過程詳解,附含詳細(xì)源碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue實現(xiàn)多條件篩選超簡潔代碼

    vue實現(xiàn)多條件篩選超簡潔代碼

    這篇文章主要給大家介紹了關(guān)于vue實現(xiàn)多條件篩選的相關(guān)資料,隨著數(shù)據(jù)的不斷增多,我們往往需要在表格中進行多條件的篩選,以便快速定位符合我們需求的數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • Avue實現(xiàn)動態(tài)查詢與數(shù)據(jù)展示的示例代碼

    Avue實現(xiàn)動態(tài)查詢與數(shù)據(jù)展示的示例代碼

    Avue是一個基于Vue.js的前端框架,它是由阿里云開發(fā)的一款企業(yè)級UI組件庫,旨在提供一套全面、易用且高性能的界面解決方案本文介紹了Avue實現(xiàn)動態(tài)查詢與數(shù)據(jù)展示的示例,需要的朋友可以參考下
    2024-08-08
  • Vue指令實現(xiàn)大屏元素分辨率適配詳解

    Vue指令實現(xiàn)大屏元素分辨率適配詳解

    這篇文章主要為大家介紹了Vue指令實現(xiàn)大屏元素分辨率適配詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Vue Router實現(xiàn)多層嵌套路由的導(dǎo)航的詳細(xì)指南

    Vue Router實現(xiàn)多層嵌套路由的導(dǎo)航的詳細(xì)指南

    在 Vue 應(yīng)用中,使用 Vue Router 可以輕松實現(xiàn)多層嵌套路由的導(dǎo)航,嵌套路由允許你創(chuàng)建一個多層次的 URL 結(jié)構(gòu),這在構(gòu)建具有復(fù)雜導(dǎo)航結(jié)構(gòu)的應(yīng)用程序時非常有用,需要的朋友可以參考下
    2024-10-10
  • vue 自動化路由實現(xiàn)代碼

    vue 自動化路由實現(xiàn)代碼

    這篇文章主要介紹了vue 自動化路由實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • vue項目打包部署到服務(wù)器的方法示例

    vue項目打包部署到服務(wù)器的方法示例

    這篇文章主要介紹了vue項目打包部署到服務(wù)器的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08

最新評論

灵川县| 海林市| 汝南县| 两当县| 威远县| 怀安县| 舒兰市| 邢台市| 鹤峰县| 西乡县| 纳雍县| 通州市| 普定县| 隆化县| 榕江县| 土默特左旗| 若尔盖县| 靖西县| 普定县| 通河县| 黔西| 南京市| 比如县| 松滋市| 鄂托克前旗| 镇巴县| 观塘区| 元朗区| 玉门市| 蕲春县| 宜昌市| 云浮市| 利辛县| 太仓市| 兴城市| 赞皇县| 福州市| 全南县| 吉林市| 自贡市| 徐闻县|