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

Vue監(jiān)視數(shù)據(jù)的原理詳解

 更新時(shí)間:2022年02月24日 16:49:39   作者:Tree_wws  
這篇文章主要為大家詳細(xì)介紹了Vue監(jiān)視數(shù)據(jù)的原理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1. Vue監(jiān)視數(shù)據(jù)的原理(set方法)

1.1 Vue監(jiān)視不同類型數(shù)據(jù)的原理

特點(diǎn):vue會(huì)監(jiān)視data中所有層級(jí)的數(shù)據(jù),并且如果他檢測(cè)到是對(duì)象那么就會(huì)給對(duì)象里面所有的屬性配置getter和setter函數(shù)

1.1.1 如何監(jiān)測(cè)對(duì)象中的數(shù)據(jù)?

通過setter實(shí)現(xiàn)監(jiān)視,且要在new Vue時(shí)就傳入要監(jiān)測(cè)的數(shù)據(jù)

?(1).對(duì)象中后追加的屬性,Vue默認(rèn)不做響應(yīng)式處理(就是沒有配置getter和setter函數(shù))

(2).如需給后添加的屬性做響應(yīng)式,請(qǐng)使用如下API:

? Vue.set(target,propertyName/index,value) 

? vm.$set(target,propertyName/index,value)

1.1.2 如何監(jiān)測(cè)數(shù)組中的數(shù)據(jù)?

通過包裹數(shù)組更新元素的方法實(shí)現(xiàn),本質(zhì)就是做了兩件事:

		(1). 調(diào)用原生對(duì)應(yīng)的方法對(duì)數(shù)組進(jìn)行更新。

		(2). 重新解析模板,進(jìn)而更新頁面。

在Vue修改數(shù)組中的某個(gè)元素一定要用如下方法:

? (1). 使用這些API:push()pop()shift()、unshift()、splice()sort()、reverse()

? (2). Vue.set() 或 vm.$set()

1.1.3 小案例

 <div id="root">
        <h2>人員信息</h2>
        <button @click="updatep">點(diǎn)擊更新馬東梅的信息</button>
        <ul>
            <li v-for='p in person' :key="p.id">
                {{p.name}} -- {{p.age}} -- {{p.gender}}
            </li>
        </ul>
        <button @click="addNew">在結(jié)尾添加一個(gè)人的信息</button>
    </div>

    <script>
        Vue.config.productionTip = false
        let vm = new Vue({
            el: '#root',
            data: {
                person: [
                    { id: "001", name: "馬冬梅", age: 20, gender: "女" },
                    { id: "002", name: "夏洛特", age: 33, gender: "男" },
                    { id: "003", name: "沈騰", age: 50, gender: "男" },
                    { id: "004", name: "賈玲", age: 45, gender: "女" },
                ]
            },
            methods: {
                updatep() {            
                    // 但是下面方法不奏效,此方法Vue檢測(cè)不到,
                    // 原因是因?yàn)閿?shù)組上面沒有g(shù)etter和setter方法所以檢測(cè)不到數(shù)據(jù)發(fā)生改變
                    // this.person[0] = {id:"001",name:"李煥英",age:66,gender:"女"}

                    // 下面方法奏效,是因?yàn)閷傩陨厦嬉呀?jīng)配置了getter和setter方法
                    // this.person[0].name = "李煥英"
                    // this.person[0].age = "66"
                    // this.person[0].gender = "女"

                    //  this.person.splice(0, 1, { id: "001", name: "李煥英", age: 66, gender: "女" }) 

                    this.$set(this.person, 0, { id: "001", name: "李煥英", age: 66, gender: "女" })
                },
                addNew() {
                    this.person.push({id: "005", name: "老妹啊", age: 99, gender: "女"})
                }
            },

        })
    </script>

1.1.4 set()小案例

<div id="root">
        <h2>學(xué)生信息</h2>
        <p>姓名:{{student.name}}</p>

        <!-- 
            一個(gè)很重要的點(diǎn):如果是查找對(duì)象中不存在的屬性,返回的是一個(gè)undefined
            不管v-show或者是v-if,如果等到undefined的就不顯示
         -->
        <p v-show="student.sex">性別:{{student.sex}}</p>
        <p>年齡:{{student.age}}</p>
        <p>地址:{{student.address}}</p>
        <p>聯(lián)系方式:{{student.contact}}</p>
        朋友:<p v-for="(v,index) in student.friends" :key="index">{{v.name}} -- {{v.age}}</p>
        <button @click="add">點(diǎn)擊添加性別</button>
    </div>

    <script>
        Vue.config.productionTip = false
        let vm = new Vue({
            el: '#root',
            data: {
                student: {
                    name: "Jack",
                    age: 18,
                    address: "北京",
                    contact: "13xxxxxxx56",
                    friends: [
                        { name: 'Mark', age: 12 },
                        { name: 'Lisa', age: 52 },
                        { name: 'Guli', age: 25 },
                    ]
                }
            },
            methods: {
                add() {
                兩種寫法都可以
                    // this.$set(vm.student,"sex","男")
                    Vue.set(this.student,"sex","男")
                }
            },
        })
    </script>

總結(jié)

以上就是今天要講的內(nèi)容,本文介紹了Vue監(jiān)視數(shù)據(jù)的原理和set方法,該部分很重要需要好好理解,希望對(duì)大家有所幫助!

相關(guān)文章

  • vue過濾器實(shí)現(xiàn)日期格式化的案例分析

    vue過濾器實(shí)現(xiàn)日期格式化的案例分析

    這篇文章主要介紹了vue過濾器實(shí)現(xiàn)日期格式化的案例分析,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 關(guān)于Vue虛擬dom問題

    關(guān)于Vue虛擬dom問題

    這篇文章主要介紹了Python合成Excel表的實(shí)現(xiàn)代碼(多sheet),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • vue中使用ts配置的具體步驟

    vue中使用ts配置的具體步驟

    這篇文章主要介紹了vue中使用ts配置的具體步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Element Card 卡片的具體使用

    Element Card 卡片的具體使用

    這篇文章主要介紹了Element Card 卡片的具體使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 詳解VUE Element-UI多級(jí)菜單動(dòng)態(tài)渲染的組件

    詳解VUE Element-UI多級(jí)菜單動(dòng)態(tài)渲染的組件

    這篇文章主要介紹了VUE Element-UI多級(jí)菜單動(dòng)態(tài)渲染的組件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue+axios使用FormData方式向后端發(fā)送數(shù)據(jù)

    Vue+axios使用FormData方式向后端發(fā)送數(shù)據(jù)

    在前后端分離的項(xiàng)目中經(jīng)常使用到Vue+axios通過FormData的方式向后端發(fā)送表單數(shù)據(jù),下面就來介紹一下如何實(shí)現(xiàn),感興趣的可以了解一下
    2023-09-09
  • vue登錄頁面設(shè)置驗(yàn)證碼input框的方法

    vue登錄頁面設(shè)置驗(yàn)證碼input框的方法

    這篇文章主要為大家詳細(xì)介紹了vue登錄頁面設(shè)置驗(yàn)證碼input框的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue的移動(dòng)端多圖上傳插件vue-easy-uploader的示例代碼

    Vue的移動(dòng)端多圖上傳插件vue-easy-uploader的示例代碼

    這篇文章主要介紹了Vue的移動(dòng)端多圖上傳插件vue-easy-uploader的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • 源碼剖析Vue3中如何進(jìn)行錯(cuò)誤處理

    源碼剖析Vue3中如何進(jìn)行錯(cuò)誤處理

    錯(cuò)誤處理是框架設(shè)計(jì)的核心要素之一,框架的錯(cuò)誤處理好壞,直接決定用戶應(yīng)用程序的健壯性以及用戶開發(fā)應(yīng)用時(shí)處理錯(cuò)誤的心智負(fù)擔(dān),本文將從源碼入手,剖析一下Vue3中是如何進(jìn)行錯(cuò)誤處理的,需要的可以參考下
    2024-01-01
  • vue生命周期四個(gè)階段created和mount詳解

    vue生命周期四個(gè)階段created和mount詳解

    這篇文章主要介紹了vue生命周期四個(gè)階段created和mount,本文給大家介紹的非常詳細(xì),補(bǔ)充介紹了什么是實(shí)例,什么是實(shí)例被掛載到DOM,什么是dom,dao操作又是什么,感興趣的朋友跟隨小編一起看看吧
    2024-02-02

最新評(píng)論

平远县| 左贡县| 巴楚县| 安宁市| 漳平市| 武冈市| 盐亭县| 汉中市| 霸州市| 津南区| 广河县| 清水县| 镇安县| 珠海市| 安仁县| 永吉县| 桃园市| 凤凰县| 漳平市| 千阳县| 来宾市| 化德县| 镇雄县| 婺源县| 宕昌县| 安化县| 扎囊县| 临城县| 白水县| 龙陵县| 阿克苏市| 闸北区| 苏尼特右旗| 利川市| 彩票| 武鸣县| 神池县| 天门市| 定安县| 高碑店市| 甘谷县|