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

Vue?監(jiān)視屬性之天氣案例實(shí)現(xiàn)

 更新時(shí)間:2022年05月27日 10:19:23   作者:??奔跑吧雞翅????  
這篇文章主要介紹了Vue?監(jiān)視屬性之天氣案例實(shí)現(xiàn),文章以天氣為例展開(kāi)介紹Vue?監(jiān)視屬性?的相關(guān)內(nèi)容,需要的小伙伴可以參考一下

天氣案例實(shí)現(xiàn)

<div id="root">
    <h2>今天天氣很{{info}}</h2>
    <button @click="changeWeather">切換天氣</button>
</div>
<script type="text/javascript">
    Vue.config.productionTip = false
    new Vue({
        el:'#root',
        data:{
            isHot:true
        },
        methods:{
            changeWeather(){
                this.isHot = !this.isHot
            }
        },
        computed:{
            info(){
                return this.isHot?'炎熱':'涼爽'
            }
        }
    })
</script>

兩個(gè)注意事項(xiàng)

1、上面我們用到了計(jì)算屬性 info 來(lái)展示天氣。如果我們把天氣寫(xiě)死,不用這個(gè)計(jì)算屬性,那么 vue 開(kāi)發(fā)這工具里的相關(guān)值是不變的

如下,初始值 isHot = true,天氣炎熱,但我們把頁(yè)面的值寫(xiě)死,不用 isHot

我們點(diǎn)擊切換天氣按鈕,vue 開(kāi)發(fā)者工具中展示的還是炎熱,其實(shí)我們通過(guò)打印發(fā)現(xiàn),isHot 值其實(shí)已經(jīng)變了

2、如果點(diǎn)擊切換天氣按鈕時(shí),我們僅僅是把 isHot 取反,我們可以這樣寫(xiě)

<button @click="isHot = !isHot">切換天氣</button>

之前寫(xiě)的 changeWeather() 也就不需要了

但是如果要做的事不止一件,例如還要維護(hù)一個(gè)別的數(shù)據(jù),最好還是寫(xiě)一個(gè)方法

<button @click="isHot = !isHot;x++">切換天氣</button>

監(jiān)視屬性

如果我們需要知道 isHot 什么時(shí)候發(fā)生了變化,可以在上邊的代碼上增加

watch:{
	isHot:{
		//immediate:true,//初始化時(shí)讓handler()調(diào)用一下
		//handler()什么時(shí)候調(diào)用?當(dāng)isHot改變時(shí)
		handler(newValue,oldValue){
			console.log('isHost被修改了',oldValue,newValue);
		}
	}
}

注意:

  • 1、當(dāng)設(shè)置其中的 immediate:true ,那么初始化的時(shí)候 handler() 也會(huì)調(diào)用一下
  • 2、也能監(jiān)視計(jì)算屬性
info:{
	immediate:true,//初始化時(shí)讓handler()調(diào)用一下
    handler(newValue,oldValue){
		console.log('info被修改了',oldValue,newValue);
	}
}

3、也可以動(dòng)態(tài)調(diào)用

const vm = new Vue({
        el:'#root',
        ......
})
vm.$watch('isHot',{
	handler(newValue,oldValue){
		console.log('isHot被修改了',oldValue,newValue);
    }
})

監(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)視

監(jiān)視的兩種寫(xiě)法:

  • (1).new Vue 時(shí)傳入 watch 配置
  • (2).通過(guò) vm.$watch 監(jiān)視

深度監(jiān)視

如果有數(shù)據(jù) numbers ,結(jié)構(gòu)如下

numbers:{
	 a:1,
	 b:1
}

現(xiàn)在需要監(jiān)視其中 a 的變化,寫(xiě)法:

<h3>a的值是{{numbers.a}}</h3>
<button @click="numbers.a++">點(diǎn)我讓a+1</button>
new Vue({
        el:'#root',
        data:{
            numbers:{
                a:1,
                b:1
            }
        },
        watch:{
            //監(jiān)視多級(jí)結(jié)構(gòu)中某個(gè)屬性的變化
            'numbers.a':{
               handler(){
                   console.log('a發(fā)生了變化');
               }
            }
        }
    })

 如果是想檢測(cè) numbers 中任意值發(fā)生變化可以這樣寫(xiě):

<div id="root">
    <h3>a的值是{{numbers.a}}</h3>
    <button @click="numbers.a++">點(diǎn)我讓a+1</button>
    <h3>b的值是{{numbers.b}}</h3>
    <button @click="numbers.b++">點(diǎn)我讓b+1</button>
</div>
new Vue({
        el: '#root',
        data: {
            numbers: {
                a: 1,
                b: 1
            }
        },
        watch: { 
            //監(jiān)視多級(jí)結(jié)構(gòu)中所有屬性的變化
            numbers: {
                deep: true,
                handler() {
                    console.log('numbers發(fā)生了變化');
                }
            }
        }
    })

其中 deep: true是關(guān)鍵,如果不寫(xiě)是不能實(shí)現(xiàn)的

深度監(jiān)視

  • (1).vue 中的 watch 默認(rèn)不監(jiān)測(cè)對(duì)象內(nèi)部值的改變(一層)
  • (2).配置 deep:true 可以監(jiān)測(cè)對(duì)象內(nèi)部值改變(多層)

備注:

  • (1).vue 自身可以監(jiān)測(cè)對(duì)象內(nèi)部值的改變,但Vue提供的 watch 默認(rèn)不可以
  • (2).使用 watch 時(shí)根據(jù)數(shù)據(jù)的具體結(jié)構(gòu),決定是否采用深度監(jiān)視

監(jiān)視的簡(jiǎn)寫(xiě)形式

如果 watch 中只有 handler 時(shí),可以簡(jiǎn)寫(xiě):

		watch:{
            //完整寫(xiě)法
            /*isHot:{
                //immediate:true,//初始化時(shí)讓handler()調(diào)用一下
                //deep: true,//深度監(jiān)視
                handler(newValue,oldValue){
                    console.log('isHost被修改了',oldValue,newValue);
                }
            }*/
            isHot(newValue,oldValue){
                console.log('isHost被修改了',oldValue,newValue);
            }
        }

當(dāng)然也可以動(dòng)態(tài)調(diào)用

	//完整寫(xiě)法
    vm.$watch('isHot',{
        //immediate:true,//初始化時(shí)讓handler()調(diào)用一下
        //deep: true,//深度監(jiān)視
        handler(newValue,oldValue){
            console.log('isHost被修改了',oldValue,newValue);
        }
    })
    //簡(jiǎn)寫(xiě),簡(jiǎn)寫(xiě)后就不能寫(xiě)上邊的屬性了
    vm.$watch('isHot',function (oldValue,newValue) {
        console.log('isHost被修改了',oldValue,newValue);
    })

到此這篇關(guān)于Vue 監(jiān)視屬性之天氣案例實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vue 監(jiān)視屬性 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 實(shí)現(xiàn)一個(gè) Vue 吸頂錨點(diǎn)組件方法

    實(shí)現(xiàn)一個(gè) Vue 吸頂錨點(diǎn)組件方法

    這篇文章主要介紹了實(shí)現(xiàn)一個(gè) Vue 吸頂錨點(diǎn)組件方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Django+Vue.js搭建前后端分離項(xiàng)目的示例

    Django+Vue.js搭建前后端分離項(xiàng)目的示例

    本篇文章主要介紹了Django+Vue.js搭建前后端分離項(xiàng)目的示例,具有一定參考價(jià)值,有興趣的可以了解一下
    2017-08-08
  • vue中數(shù)據(jù)不響應(yīng)的問(wèn)題及解決

    vue中數(shù)據(jù)不響應(yīng)的問(wèn)題及解決

    這篇文章主要介紹了vue中數(shù)據(jù)不響應(yīng)的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 基于form-data請(qǐng)求格式詳解

    基于form-data請(qǐng)求格式詳解

    今天小編就為大家分享一篇基于form-data請(qǐng)求格式詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • Vue組件間的雙向綁定示例解析

    Vue組件間的雙向綁定示例解析

    這篇文章主要介紹了Vue組件間的雙向綁定,我們都知道當(dāng)父組件改變了某個(gè)值后,如果這個(gè)值傳給了子組件,那么子組件也會(huì)自動(dòng)跟著改變,但是這是單向的,使用v-bind的方式,即子組件可以使用父組件的值,但是不能改變這個(gè)值
    2023-03-03
  • Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù)

    Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù)

    今天小編就為大家分享一篇關(guān)于Vue中Axios從遠(yuǎn)程/后臺(tái)讀取數(shù)據(jù),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • vue的常用組件操作方法應(yīng)用分析

    vue的常用組件操作方法應(yīng)用分析

    這篇文章主要介紹了vue的常用組件操作方法應(yīng)用分析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-04-04
  • 詳解關(guān)于Vue2.0路由開(kāi)啟keep-alive時(shí)需要注意的地方

    詳解關(guān)于Vue2.0路由開(kāi)啟keep-alive時(shí)需要注意的地方

    這篇文章主要介紹了關(guān)于Vue2.0路由開(kāi)啟keep-alive時(shí)需要注意的地方,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • 利用vue重構(gòu)有贊商城的思路以及總結(jié)整理

    利用vue重構(gòu)有贊商城的思路以及總結(jié)整理

    這篇文章主要介紹了利用vue重構(gòu)有贊商城的思路以及總結(jié)整理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 一起來(lái)學(xué)習(xí)Vue的組件間通信方式

    一起來(lái)學(xué)習(xí)Vue的組件間通信方式

    這篇文章主要為大家詳細(xì)介紹了Vue的組件間通信方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03

最新評(píng)論

云和县| 莱州市| 依兰县| 尼木县| 牙克石市| 贞丰县| 奉化市| 封丘县| 连州市| 城口县| 崇阳县| 鱼台县| 正镶白旗| 黄骅市| 通州区| 桂东县| 樟树市| 会泽县| 巫溪县| 房山区| 宜州市| 淳安县| 安西县| 临沭县| 陆良县| 屏东县| 青阳县| 砚山县| 平凉市| 尼勒克县| 徐闻县| 澜沧| 永修县| 湘阴县| 永福县| 昌吉市| 霍林郭勒市| 海伦市| 泸溪县| 丰城市| 手机|