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

鍍金池/ 問答/Python  HTML/ vue.js mounted問題

vue.js mounted問題

本人新手, 買了梁灝大神的vue.js,里面的一個小例子沒太看懂.是關(guān)于this的.希望大神們解答下.
完整代碼在body中, 為什么要用 var _this = this, 這個this不就是指向的 vue 嗎,代碼中 //聲明一個變量指向 Vue 實例this,保證作用域一致,是什么意思呢? 我嘗試了下, 如果沒寫 var _this = this 的話,直接寫成下面這也的話,

mounted: function () {
    this.timer = setInterval(function () {
        this.data = new Date()
    },1000)
},

這樣寫的話,時間將不會刷新. 請問這是為什么呢.

<body>

<div id="app">
    {{data}}
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script type="text/javascript">
    var app = new Vue({
        el: '#app',
        data () {
            return {
                data: new Date(),
            }
        },
        mounted: function () {
            var _this = this //聲明一個變量指向 Vue 實例this,保證作用域一致
            this.timer = setInterval(function () {
                _this.data = new Date()
            },1000)
        },
        beforeDestroy: function () {
            if (this.timer) {
                clearInterval(this.timer)
            }
        }
    })
</script>

</body>

回答
編輯回答
使勁操

這是js中作用域的問題跟vue沒關(guān)系,在學(xué)vue之前還是要好好的了解下js原理。建議去看看js權(quán)威指南。

2017年4月24日 12:24
編輯回答
互擼娃

這是個跟vue沒有關(guān)系的問題。
涉及到this的指向的一個問題,你去搜this的四種調(diào)用(還有別的種類,但是先搜這個)
搜完之后繼續(xù)往下看:
然后這里的

setInterval(function () {
    this.data = new Date()
},1000)

this是屬于setInterval的回調(diào)函數(shù)的,屬于直接調(diào)用,指向誰?

最后希望你先學(xué)js基礎(chǔ)。

官方指南假設(shè)你已了解關(guān)于 HTML、CSS 和 JavaScript 的中級知識。
2018年1月11日 19:40