vue-3 this概念
一、this概念
官方是这样说的:
在 setup()
内部,this 不会是该活跃实例的引用
因为 setup() 是在解析其它组件选项之前被调用的,所以 setup() 内部的 this 的行为与其它选项中的 this 完全不同
这在和其它选项式 API 一起使用 setup() 时可能会导致混淆
啥意思呢:
就是 this 未指向当前的组件实例,在 setup 被调用之前,data,methods,computed 等都没有被解析
但事实是组件实例确实在执行 setup 函数之前就已经被创建好了,所以会与 Vue2
this 导致混淆
二、使用getCurrentInstance
getCurrentInstance
支持访问内部组件实例:
getCurrentInstance
只暴露给高阶使用场景
典型的比如在库中,强烈反对在应用的代码中使用 getCurrentInstance
请不要把它当作在组合式 API 中获取 this
的替代方案来使用
import { getCurrentInstance } from 'vue' const MyComponent = { setup() { // 获取当前组件的上下文,下面两种方式都能获取到组件的上下文。 const { ctx } = getCurrentInstance(); // 方式一,这种方式只能在开发环境下使用,生产环境下//的ctx将访问不到 const { proxy } = getCurrentInstance(); // 方式二,此方法在开发环境以及生产环境下都能放到组件上下文对象(推荐) } }
引用:
https://dhexx.cn/news/show-241335.html
https://blog.csdn.net/weixin_45974259/article/details/123858407
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人