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

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.

主站蜘蛛池模板: 巨鹿县| 平泉县| 佳木斯市| 塔城市| 临桂县| 酒泉市| 鸡西市| 阿拉善左旗| 德令哈市| 遂昌县| 乐至县| 花莲市| 新营市| 登封市| 乡宁县| 无极县| 婺源县| 白玉县| 九寨沟县| 灵武市| 常宁市| 准格尔旗| 江都市| 宜宾县| 十堰市| 拜泉县| 贡嘎县| 察哈| 疏勒县| 浦江县| 易门县| 柯坪县| 孙吴县| 武穴市| 黎城县| 密云县| 崇信县| 巴马| 南溪县| 特克斯县| 阿瓦提县|