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

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.

主站蜘蛛池模板: 驻马店市| 上饶县| 上高县| 乌鲁木齐县| 高唐县| 瓦房店市| 乐都县| 玛曲县| 治多县| 象州县| 闵行区| 静乐县| 武山县| 四川省| 隆昌县| 辽阳县| 景东| 胶州市| 河西区| 湖南省| 赤水市| 石阡县| 温泉县| 彰化市| 侯马市| 耿马| 家居| 焦作市| 勐海县| 行唐县| 南平市| 米泉市| 巴塘县| 喜德县| 巴楚县| 宣汉县| 祁阳县| 呼图壁县| 玉屏| 沅江市| 炎陵县|