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

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.

主站蜘蛛池模板: 佛山市| 金堂县| 筠连县| 榆社县| 红桥区| 高雄市| 苗栗市| 比如县| 玉山县| 普洱| 砚山县| 新昌县| 镇原县| 吉水县| 元谋县| 蒙山县| 杭锦旗| 独山县| 南安市| 新竹市| 寿宁县| 镇坪县| 淮滨县| 宁河县| 新疆| 沿河| 垫江县| 德令哈市| 衡阳县| 兴化市| 莒南县| 昌宁县| 辽阳市| 云南省| 富蕴县| 财经| 霸州市| 凤山市| 潍坊市| 子洲县| 林西县|