官术网_书友最值得收藏!

How Vue handles 'this'

You may have noticed up to this point that we're able to reference values inside of our data, methods, and other objects using this syntax, but the actual structure of our instance is this.data.propertyName or this.methods.methodName; all of this is possible due to the way Vue proxies our instance properties.

Let's take a very simple Vue application that has one instance. We have a data object that has a message variable and a method named showAlert; how does Vue know how to access our alert text with this.message?

<template>
<button @click="showAlert">
Show Alert</button>
</template>

<script>
export default {
data() {
return {
message: 'Hello World!',
};
},
methods: {
showAlert() {
alert(this.message);
},
},
};
</script>

Vue proxies the instance properties to the top level object, allowing us to access these properties via this. If we were to log out the instance to the console (with the help of Vue.js devtools), we'd get the following result:

Console logout

The key properties to look at within the preceding screenshot are message and showAlert, both of which are defined on our Vue instance yet proxied to the root object instance at initialization time.

主站蜘蛛池模板: 汶上县| 福泉市| 西华县| 彰武县| 大新县| 三台县| 林口县| 霍邱县| 琼中| 平利县| 兴文县| 木兰县| 谷城县| 通道| 舟山市| 邵东县| 仪征市| 江陵县| 库尔勒市| 韩城市| 台湾省| 正蓝旗| 吴桥县| 泗水县| 昆山市| 乐昌市| 琼中| 远安县| 阳谷县| 张家界市| 城固县| 甘孜县| 荔波县| 新建县| 仙居县| 卢龙县| 宜兰市| 剑河县| 即墨市| 江永县| 房产|