uniapp is developed based on Vue.js, so using this in uniapp is very common. However, sometimes you will find that this does not work in some methods of uniapp. Why is this?
In uniapp, this points to the Vue instance object by default, which contains various Vue instance properties and methods. But in some methods, this does not point to the Vue instance object. These methods may be internal methods of uniapp or methods of third-party plug-ins.
In this case, you need to use other ways to access the Vue instance object. Here are some commonly used methods:
this.$parent can access the parent component of the current component, and the parent component contains Vue instance object. Therefore, you can access the data and methods in the Vue instance object through this.$parent.
For example, you can use the following method to access the testData data of the Vue instance object in the sub-component:
this.$parent.testData
EventBus is also a commonly used Method can be used to solve the problem of passing data between different components. In the Vue instance object, you can trigger an event through the $emit method, and listen to this event through the $on method in other components.
For example, trigger an event in the Vue instance object:
this.$emit('testEvent', data)
Listen to this event in other components:
this.$on('testEvent', (data) => { console.log(data) })
In this way, data can be processed in different components Passed and processed.
$refs can access the ref attribute defined in the component, and the component instance and component data can be accessed through the ref attribute.
For example, define a ref attribute in the component:
<template> <div ref="myRef">Hello World</div> </template>
Access the ref attribute in the component method:
this.$refs.myRef.innerHTML = 'Hello Uniapp'
This way you can modify the data in the component.
Summary
In the development of uniapp, it is relatively common that this does not work. But by using the methods introduced above, we can easily access the data and methods in the Vue instance object to solve this problem.
The above is the detailed content of What is the situation when this is invalid in the uniapp method?. For more information, please follow other related articles on the PHP Chinese website!