Home > Web Front-end > uni-app > What is the situation when this is invalid in the uniapp method?

What is the situation when this is invalid in the uniapp method?

PHPz
Release: 2023-04-06 14:11:17
Original
2003 people have browsed it

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:

  1. this.$parent

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
Copy after login
  1. EventBus

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)
Copy after login

Listen to this event in other components:

this.$on('testEvent', (data) => {
  console.log(data)
})
Copy after login

In this way, data can be processed in different components Passed and processed.

  1. $refs

$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>
Copy after login

Access the ref attribute in the component method:

this.$refs.myRef.innerHTML = 'Hello Uniapp'
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template