vue3的getCurrentInstance获取当前组件实例

vue3的setup中没有this时需要使用getCurrentInstance()来获取。

在 Vue 3 中,getCurrentInstance 方法可以在组合式 API(Composition API)中获取当前组件实例。这个方法返回一个包含了组件实例的对象,你可以用它来访问组件的 props、attrs、slots 和 emit 方法等。

proxy:访问响应式数据和方法
ctx:访问属性和方法
注:ctx代替this只适用于开发阶段,如果将项目打包放到生产服务器上运行,就会出错,ctx无法获取路由和全局挂载对象的。此问题的解决方案就是使用proxy替代ctx

举例:
1、如果说我们要通过$refs来获取dom。

<script setup>
  import { getCurrentInstance, onMounted } from "vue";

  const {proxy,ctx } = getCurrentInstance();

  onMounted(()=>{
    console.log(proxy.$refs.test_ref,ctx.$refs.test_ref)
  })
</script>

<template>
  <div>
    <div ref="test_ref">$refs获取</div>
  </div>
</template>

在这里插入图片描述
2、全局导入api接口方便使用
一个用于注册能够被应用内所有组件实例访问到的全局属性的对象
vue2的main.js

import api from './api' // 导入api接口
Vue.prototype.$api = api

页面上使用时:

this.$api

globalProperties是对 Vue 2 中 Vue.prototype 使用方式的一种替代,如果全局属性与组件自己的属性冲突,组件自己的属性将具有更高的优先级。
vue3的main.js

import api from './api'
app.config.globalProperties.api = api

页面上使用时:

import { getCurrentInstance, onMounted } from "vue";
const {proxy,ctx } = getCurrentInstance();
 onMounted(()=>{
   console.log(proxy.api)
 })

在这里插入图片描述

相关推荐

  1. vue3项目中使用getCurrentInstance获取实例和dom问题

    2024-04-26 15:56:04       30 阅读
  2. vue3获取当前路由为什么一直是 / ?

    2024-04-26 15:56:04       35 阅读
  3. vue3封装获取当前年、月、季度、周

    2024-04-26 15:56:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-26 15:56:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-26 15:56:04       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-26 15:56:04       82 阅读
  4. Python语言-面向对象

    2024-04-26 15:56:04       91 阅读

热门阅读

  1. window.open打开别人项目页面不成功的限制

    2024-04-26 15:56:04       36 阅读
  2. 前端HTML面试题:meta 元素都有什么

    2024-04-26 15:56:04       34 阅读
  3. ansible下playbook安装httpd

    2024-04-26 15:56:04       24 阅读
  4. C++面向对象:重写、重载、隐藏

    2024-04-26 15:56:04       29 阅读
  5. Docker常用命令

    2024-04-26 15:56:04       29 阅读
  6. 1003 - 编程求1+3+5+...+n

    2024-04-26 15:56:04       37 阅读
  7. Kotlin作用域函数引发的遮蔽问题

    2024-04-26 15:56:04       31 阅读
  8. Go语言第二篇-基本数据类型与转义字符

    2024-04-26 15:56:04       35 阅读