vue3 没有this 啊
时间: 2023-07-13 14:05:49 浏览: 66
在 Vue 3 中,确实不再支持使用 `this` 访问组件实例,这是因为 Vue 3 的设计目标是更好的 TypeScript 支持和更好的 Tree-shaking。在 Vue 3 中,组件实例被存储在 `setup()` 函数中返回的响应式对象中,你可以从该对象中获取组件实例的属性和方法。
例如,在 Vue 2 中,你可以通过 `this.$emit('event')` 触发一个自定义事件,但在 Vue 3 中,你需要使用 `emit('event')`,其中 `emit` 是从 `setup()` 返回的响应式对象中获取的。
总之,Vue 3 中的组件实例和 Vue 2 中的有所不同,但是通过 `setup()` 函数返回的响应式对象,你仍然可以访问组件的所有属性和方法。
相关问题
vue3没有this怎么赋值
在 Vue 3 中,可以使用 `ref` 和 `reactive` 来创建响应式数据。使用 `ref` 创建的数据可以直接使用 `.value` 赋值,使用 `reactive` 创建的数据可以直接访问属性进行赋值。
例如,使用 `ref` 创建一个响应式的变量:
```javascript
import { ref } from 'vue'
const count = ref(0)
// 赋值
count.value = 1
```
使用 `reactive` 创建一个响应式对象:
```javascript
import { reactive } from 'vue'
const person = reactive({
name: 'Tom',
age: 18
})
// 赋值
person.name = 'Jerry'
person.age = 20
```
VUE3 组件 this
在 Vue3 中,组件中的 this 指向的是组件实例对象,可以通过 this 访问组件中的 props、data、computed、methods 等属性和方法。例如,可以通过 this.message 访问组件中的 data 中的 message 属性,通过 this.$emit() 触发一个自定义事件,通过 this.$refs 访问组件中的子组件或DOM元素等。需要注意的是,在 setup 函数中,this 指向的是 undefined,需要通过传递参数的方式获取 props 和 context。