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

vue監(jiān)視器@Watch創(chuàng)建執(zhí)行immediate方式

 更新時(shí)間:2024年08月07日 10:32:05   作者:天魔老師  
這篇文章主要介紹了vue監(jiān)視器@Watch創(chuàng)建執(zhí)行immediate方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

vue監(jiān)視器@Watch創(chuàng)建執(zhí)行immediate

vue監(jiān)視器@Watch的immediate參數(shù),表示在watch中首次綁定的時(shí)候,是否執(zhí)行handler函數(shù),

1.值為true則表示在watch中聲明的時(shí)候,就立即執(zhí)行handler方法,

2.值為false,則和一般使用watch一樣,在數(shù)據(jù)發(fā)生變化的時(shí)候才執(zhí)行handler。

async created() {  
    // await this.refreshMessageBody()
}

@Watch('message',{
    immediate:true,    
    // immediate表示在watch中首次綁定的時(shí)候,是否執(zhí)行handler,
    // 值為true則表示在watch中聲明的時(shí)候,就立即執(zhí)行handler方法,
    // 值為false,則和一般使用watch一樣,在數(shù)據(jù)發(fā)生變化的時(shí)候才執(zhí)行handler。
})
async refreshMessageBody(){
    console.log("message改變了");
    await this.func1();
    await this.func2();
}

vue監(jiān)視屬性(watch)

監(jiān)視屬性

監(jiān)視屬性watch:

1.當(dāng)被監(jiān)視的屬性變化時(shí),回調(diào)函數(shù)自動(dòng)調(diào)用,進(jìn)行相關(guān)操作

2.監(jiān)視的屬性必須存在,才能進(jìn)行監(jiān)視

3.監(jiān)視的兩種寫法:

  • new Vue時(shí)傳入watch屬性
  • 通過app.$watch監(jiān)視
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>監(jiān)視</title>
    <script src="../js/vue.min.js"></script>
</head>
<body>
<div id="app">
  	<!--第一種寫法-->
    <h2>今天天氣很{{isHot ? '炎熱':'涼爽'}}</h2>
    <!--第二種寫法:通過計(jì)算屬性-->
    <h2>今天天氣很{{info}}</h2>
    <!--綁定methods的方法-->
    <button @click="change">點(diǎn)擊切換天氣</button>
    <!--離譜寫法:適用于簡單測試-->
    <button @click="isHot = !isHot">點(diǎn)擊切換天氣</button>
</div>

<script>
    let app = new Vue({
        el: '#app',
        data: {
            isHot: true
        },
        methods: {
          change: function (){
              this.isHot = !this.isHot
          }
        },
        computed: {
            info: {
                get: function (){
                    if (this.isHot==true){
                        return '炎熱'
                    }else{
                        return '涼爽'
                    }
                },
                set: function (){
                    this.isHot = !this.isHot
                }

            }
        },
        watch: {
            //監(jiān)視誰
            isHot: {
                //什么時(shí)候調(diào)用?當(dāng)isHot改變
                handler(newValue,oldValue) {
                    console.log('isHot被修改惹',newValue,oldValue)
                },
                //初始化時(shí)讓handler調(diào)用一下
                immediate: true
            }
        }
    })
    //可以替換上面的watch屬性
    app.$watch('isHot',{
        //什么時(shí)候調(diào)用?當(dāng)isHot改變
        handler(newValue,oldValue) {
            console.log('isHot被修改惹',newValue,oldValue)
        },
        //初始化時(shí)讓handler調(diào)用一下
        immediate: true
    })
</script>
</body>
</html>

深度監(jiān)視

深度監(jiān)視:

? 1.vue中的watch默認(rèn)不監(jiān)測對象內(nèi)部值的改變(一層)

? 2.配置deep:true可以檢測對象內(nèi)部值改變(多層次)

備注:

? 1.vue自身可以監(jiān)測對象內(nèi)部值的改變,但vue提供的watch默認(rèn)不可以

? 2.使用watch時(shí)根據(jù)數(shù)據(jù)的具體結(jié)構(gòu),決定是否采用深度監(jiān)視

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>監(jiān)視簡寫形式</title>
    <script src="../js/vue.min.js"></script>
</head>
<body>
<div id="app">

    <h2>今天天氣很{{isHot ? '炎熱':'涼爽'}}</h2>

    <button @click="change">點(diǎn)擊切換天氣</button>
</div>

<script>
    let app = new Vue({
        el: '#app',
        data: {
            isHot: true,
            numbers: {
                a: 1,
                b: 2
            }
        },
        methods: {
          change: function (){
              this.isHot = !this.isHot
          }
        },
        computed: {
            info: {
                get: function (){
                    if (this.isHot==true){
                        return '炎熱'
                    }else{
                        return '涼爽'
                    }
                },
                set: function (){
                    this.isHot = !this.isHot
                }

            }
        },
        watch: {
            //完整寫法
            // isHot: {
            //     // deep: true,深度監(jiān)視
            //     handler(newValue,oldValue) {
            //         console.log('isHot被修改惹',newValue,oldValue)
            //     },
            //     //初始化時(shí)讓handler調(diào)用一下
            //     // immediate: true
            // },
            //簡寫
            isHot(newValue,oldValue){
                console.log('isHot被修改了',newValue,oldValue)
            }
        }
    })
    //完整寫法
    app.$watch('isHot',{
        //什么時(shí)候調(diào)用?當(dāng)isHot改變
        handler(newValue,oldValue) {
            console.log('isHot被修改惹',newValue,oldValue)
        },
        //初始化時(shí)讓handler調(diào)用一下
        immediate: true
    })
    //不允許寫箭頭函數(shù),會導(dǎo)致this指向的不是app,
    // vue管理的函數(shù)(methods中的,computed,watch中的)都得寫普通函數(shù),
    // 不能寫es6里的箭頭函數(shù)
    app.$watch('isHot',function(newValue,oldValue) {
        console.log('isHot被修改惹',newValue,oldValue)
    })
</script>
</body>
</html>

監(jiān)視效果:

computed VS watch

計(jì)算屬性在大多數(shù)情況下更合適,但有時(shí)也需要一個(gè)自定義的偵聽器。

這就是為什么 Vue 通過 watch 選項(xiàng)提供了一個(gè)更通用的方法,來響應(yīng)數(shù)據(jù)的變化。

當(dāng)需要在數(shù)據(jù)變化時(shí)執(zhí)行異步或開銷較大的操作時(shí),這個(gè)方式是最有用的

computed與watch區(qū)別

  • computed能完成的功能,watch都可以完成
  • watch能完成的功能,computed不一定能完成,例如:watch可以進(jìn)行異步操作

注意:

  • 所被Vue管理的函數(shù),最好寫成普通函數(shù),這樣this的指向才是vue實(shí)例對象或組件實(shí)例對象
  • 所有不被Vue所管理的函數(shù)(定時(shí)器的回調(diào)函數(shù)、ajax的回調(diào)函數(shù)等),最好寫成箭頭函數(shù),這樣this的指向才是vue的實(shí)例或組件的實(shí)例對象

總結(jié)

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

相關(guān)文章

  • Vue表單提交點(diǎn)擊事件只允許點(diǎn)擊一次的實(shí)例

    Vue表單提交點(diǎn)擊事件只允許點(diǎn)擊一次的實(shí)例

    這篇文章主要介紹了Vue表單提交點(diǎn)擊事件只允許點(diǎn)擊一次的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue data變量相互賦值后被實(shí)時(shí)同步的解決步驟

    vue data變量相互賦值后被實(shí)時(shí)同步的解決步驟

    這篇文章主要介紹了vue data變量相互賦值后被實(shí)時(shí)同步的解決步驟,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • VUE子組件的watch不被觸發(fā)問題及解決

    VUE子組件的watch不被觸發(fā)問題及解決

    這篇文章主要介紹了VUE子組件的watch不被觸發(fā)問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue3:vue2中protoType更改為config.globalProperties問題

    vue3:vue2中protoType更改為config.globalProperties問題

    這篇文章主要介紹了vue3:vue2中protoType更改為config.globalProperties問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 使用Vue進(jìn)行數(shù)據(jù)可視化實(shí)踐分享

    使用Vue進(jìn)行數(shù)據(jù)可視化實(shí)踐分享

    在當(dāng)今的數(shù)據(jù)驅(qū)動(dòng)時(shí)代,數(shù)據(jù)可視化變得越來越重要,它能夠幫助我們更直觀地理解數(shù)據(jù),從而做出更好的決策,在這篇博客中,我們將探索如何使用 Vue 和一些常見的圖表庫(如 Chart.js)來制作漂亮的數(shù)據(jù)可視化效果,需要的朋友可以參考下
    2024-10-10
  • Vue3集成Element-plus快速搭建頁面框架的過程

    Vue3集成Element-plus快速搭建頁面框架的過程

    ElementPlus是一款基于Vue3的UI組件庫,提供了豐富的組件和響應(yīng)式設(shè)計(jì),易于使用和主題定制,在Vue3項(xiàng)目中集成ElementPlus,需要通過npm安裝并引入組件,主題色可以通過修改樣式文件進(jìn)行全局設(shè)置,本文介紹Vue3集成Element-plus快速搭建頁面框架,感興趣的朋友一起看看吧
    2025-03-03
  • Vue3?實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能

    Vue3?實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能

    這篇文章主要介紹了Vue3?實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能,倒計(jì)時(shí)的運(yùn)用場景是獲取手機(jī)驗(yàn)證碼倒計(jì)時(shí)、獲取郵箱驗(yàn)證碼倒計(jì)時(shí)等場景,本文結(jié)合示例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2023-01-01
  • vue.js 初體驗(yàn)之Chrome 插件開發(fā)實(shí)錄

    vue.js 初體驗(yàn)之Chrome 插件開發(fā)實(shí)錄

    這篇文章主要介紹了vue.js 初體驗(yàn)之Chrome 插件開發(fā)實(shí)錄 ,需要的朋友可以參考下
    2017-05-05
  • Vue使用Three.js加載glTF模型的方法詳解

    Vue使用Three.js加載glTF模型的方法詳解

    這篇文章主要給大家介紹了關(guān)于Vue使用Three.js加載glTF模型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • vue-resource?獲取本地json數(shù)據(jù)404問題的解決

    vue-resource?獲取本地json數(shù)據(jù)404問題的解決

    這篇文章主要介紹了vue-resource?獲取本地json數(shù)據(jù)404問題的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10

最新評論

宁陵县| 东丰县| 浪卡子县| 当雄县| 保亭| 方城县| 邓州市| 虞城县| 衢州市| 杭锦旗| 祥云县| 兴业县| 普陀区| 安康市| 阳山县| 乌什县| 广东省| 鄯善县| 乐陵市| 张掖市| 福鼎市| 平昌县| 玛纳斯县| 乌兰察布市| 齐齐哈尔市| 苏尼特右旗| 乃东县| 绍兴市| 亚东县| 璧山县| 琼结县| 新源县| 盐亭县| 东城区| 白水县| 南漳县| 潜山县| 大安市| 葵青区| 平乡县| 景谷|