vue的this.vm是指Vue實例,在Vue中,this指向組件或者Vue實例本身。在組件內部,this指向組件實例,在Vue實例內部,this指向Vue實例本身。
var vm = new Vue({
el: '#example',
data: {
message: 'Hello'
},
computed: {
reversedMessage: function () {
return this.message.split('').reverse().join('')
}
},
methods: {
getMessage: function () {
alert(this.message)
}
}
})
在上面的代碼中,我們定義了一個Vue實例,這個實例中包含了一個data數據message,一個computed屬性reversedMessage以及一個方法getMessage,我們可以通過this.vm來訪問Vue實例中的這些數據、屬性和方法。
Vue.component('my-component', {
template: 'A custom component!',
created: function () {
console.log('Component created:', this instanceof Vue) // true
console.log('Component created:', this.vm) // the vm instance
}
})
在組件中,我們同樣可以通過this.vm來訪問Vue實例中的數據、屬性和方法。
this.vm的作用是讓我們在組件中訪問Vue實例,從而訪問Vue實例中的數據和方法,這在我們開發組件、自定義指令等的時候會非常有用。同時,this.vm也能夠讓我們在Vue實例內部訪問其自身的數據和屬性,更好的使用Vue。