在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Python  HTML/ 為什么vue中無法這樣對新老變量做比較

為什么vue中無法這樣對新老變量做比較

圖片描述

圖片描述

在一個interval定時器里面執(zhí)行一個getAll方法,這個getAll方法會使用axios循環(huán)讀取某個接口,一旦那個接口數(shù)據(jù)有變動,就會將新數(shù)據(jù)寫入vue.count中,我現(xiàn)在想實現(xiàn)的是一旦檢測到這個vue.count有變化就alert彈框并且audio標簽播放聲音,但是我發(fā)現(xiàn)這樣做并沒有效果,原因是什么呢?為什么old和new始終是一樣的?

回答
編輯回答
情皺

watch你值得擁有

2017年4月22日 08:37
編輯回答
小眼睛

你可以參照這樣的寫法

    new Vue({
        el: "#app",
        data() {
            return {
                count: ''
            }
        },
        methods: {
            getAll() {
                return new Promise((resolve, reject) => {
                    axios.get('../json/menu.json').then(res => {
                        resolve(res.data)
                    })
                })
            }
        },
        watch: {
            count: function () {
                alert('數(shù)據(jù)發(fā)生變化')
            }
        },
        mounted() {
            let that = this;
            setInterval(async () => {
                that.count = await that.getAll()
            }, 5000);
        }
    })

使用watch來監(jiān)聽count

2017年9月19日 23:12
編輯回答
賤人曾

因為你vue.old=vue.count這兩個始終相等,你后續(xù)又用他們做比較,這種場景你可以使用watch實現(xiàn),或者
先不賦值

if(vue.count===vue.old){
    數(shù)據(jù)無變化
}else{
    alert('new message')
}
2017年11月20日 10:57