vue3获取vue实例 并注册全局属性方法
vue3注册全局属性方法
- 前言
- 一、app.config.globalProperties
- 1 注册实例
- 2 注册方法
- 二、依赖注入(Provide / Inject)
- 1 注册实例
- 2 注册方法
- 3 一次性多次传入
- 最后
前言
在使用 Vue 时,多个地方使用同一个方法导致每个地方都需要按需引用,从而增加代码量。然而,这种做法实际上有助于减少冗余、提高一致性,并且是代码重用、抽象或模块化的体现。这种方法提高了代码的维护性、可读性和一致性。
注:
自动导入Vue Composition API 函数(如 ref, reactive, computed 等)可以使用插件 unplugin-auto-import
组件全局注册可以参考官网vue3组件全局注册,或者使用插件unplugin-vue-components
一、app.config.globalProperties
一个用于注册能够被应用内所有组件实例访问到的全局属性的对象。
1 注册实例
在 main.js 中引入全局要使用的实例,通过 app.config.globalProperties 添加到全局中
//main.js文件
const app = createApp(App)
app.config.globalProperties.$Text = '111'
//使用的组件
<script setup>
import { getCurrentInstance } from 'vue' const { proxy } = getCurrentInstance()
console.log(proxy.$Text); //111 </script>
2 注册方法
同理也是可以注册方法的
这里写了个防抖函数,关于防抖函数可以参考这里Vue中使用防抖和节流
//main.js文件
import { debounce } from "./util"
const app = createApp(App)
app.config.globalProperties.$Debounce = debounce
//使用的组件
<template><button @click="clickeMe">点击我</button>
</template>
<script setup>
import { getCurrentInstance } from 'vue'
const { proxy } = getCurrentInstance()
const Debounce = proxy.$Debounce
const clickeMe = Debounce(async () => {console.log("await我被点击了");//这里写需要的代码
}, 1000);
</script>
参考官网:app.config.globalProperties
二、依赖注入(Provide / Inject)
提供一个值,可以被后代组件注入。

1 注册实例
<script setup>
//APP.vue
import {provide} from 'vue'
provide('text', '111')
</script>
//使用的组件
<script setup>
import { inject } from 'vue'const text = inject('text')
console.log(text); //111
</script>
2 注册方法
这里一样的用防抖来举例
<script setup>
//APP.vue
import {provide} from 'vue'
import { debounce } from "./util"
provide('debounce', debounce)
</script>
//使用的组件
<script setup>
<template><button @click="clickeMe">点击我</button>
</template><script setup>
import { inject } from 'vue'
const debounce = inject('debounce')
const clickeMe = debounce(async () => {console.log("await我被点击了");//这里写需要的代码
}, 1000);
</script>
效果图

可以看到多次点击后1s内执行了一次
3 一次性多次传入
在 Vue 3 中,provide 函数本身不支持一次性传递多个值。但可以通过将多个值包装在一个对象中,来实现类似的效果。这样可以通过单个 provide 调用传递多个参数。
代码示例:
//APP.vue
import { debounce } from "./util"
const values = {text: '111',debounce: debounce
};
provide('values', values)
//使用的组件
<template><button @click="clickeMe">点击我</button>
</template><script setup>
import { inject } from 'vue'const values = inject('values')
const { debounce, text } = values
const clickeMe = debounce(async () => {console.log("await我被点击了"); //这里写需要的代码
}, 1000);
console.log(text); //111
</script>
参考Vue3官网:组合式 API:依赖注入
最后
参考文档:Vue3 MaskerFan 博客园
相关文章:
vue3获取vue实例 并注册全局属性方法
vue3注册全局属性方法 前言一、app.config.globalProperties1 注册实例2 注册方法 二、依赖注入(Provide / Inject)1 注册实例2 注册方法3 一次性多次传入 最后 前言 在使用 Vue 时,多个地方使用同一个方法导致每个地方都需要按需引用&#…...
function calling后,如何让大模型进行自然语言输出?
在现代的自然语言处理(NLP)系统中,Function Calling 是指模型在对话过程中调用外部函数以获取特定数据或执行特定操作的能力。在 Function Calling 后,你可以将接收到的数据发送回大模型,并生成自然语言输出。以下是如…...
Android笔试面试题AI答之Kotlin(8)
文章目录 34.Kotlin 泛型中的“*”和“Any”有什么区别?Any*总结 35.Kotlin 协程在哪些方面优于 RxKotlin/RxJava?1. 语法简洁性和易读性2. 性能3. 错误处理和调试4. 场景适用性5. 学习和使用成本 36.Kotlin 协程中的 launch/join 和 async/await 有什么…...
LVS服务的搭建之NAT模式、DR模式的搭建实战
# LVS的概述 1/什么是LVS linux virtural server的简称,也就是linxu虚拟机服务器,使用lvs可以达到的技术目标是:通过linux达到负载均衡技术和linux操作系统实现一个高性能高可用的linux服务器集群,他具有良好的可靠性࿰…...
Raft分布式存储
文章目录 前言一、项目大纲二、Raft模块1.Raft介绍2.大致内容Leader与选举日志同步、心跳raft日志的两个特点 3.主要流程1. raft类的定义关键函数m_nextIndex 和 m_matchIndex作用 2.启动初始化3.竞选leaderelectionTimeOutTicker:doElectionsendRequestVoteRequestVote 4.日志…...
【Linux】使用nm命令查看动态库包含的符号表
【Linux】使用nm命令查看动态库包含的符号表 文章目录 【Linux】使用nm命令查看动态库包含的符号表1. nm的简介2. nm的使用3. nm查找具体的函数名或变量名Reference 1. nm的简介 nm命令来自name的简写。nm命令常用于查看二进制文件中的符号表,通常用于静态库和可执…...
你还不知道苹果手机截长图的方法?4 种方法都可以
苹果手机截长图 先给大家介绍第一个苹果手机截长图的方法,如果你是在 Safari 浏览器中想要截图分享的话,浏览器截图自带可以截取全页的选项,让你实现截长屏的操作。首先找到你想要截取的网页,然后按下手机的电源按键以及音量按键…...
C++选择题带答案
1. 在定义成员函数时给出的成员函数的正确标记是 (1) 。 (a) <类名>.<函数名> (b) <类名>::<函数名> (c) <对象名>.<函数名> (d) <对象名>::<函数名> 2.以下关于函数指针的叙述中,正确…...
Unity动画模块 之 简单创建一个序列帧动画
本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正 1.什么是序列帧动画 序列帧动画简单来讲就是通过连续播放一系列静态图像,形成动态视觉效果的过程ÿ…...
学会高效记录并整理编程学习笔记
文章目录 一、前言二、建议和方法2.1 明确笔记目的2.2 选择合适的工具2.3 结构化笔记2.4 高效记录技巧2.5 图文并茂2.6 定期回顾与整理2.7 利用搜索与链接2.8 分享与交流2.9 实践与应用 三、总结 一、前言 高效记录并整理编程学习笔记是提升学习效率和巩固知识的重要手段&…...
Llama 3.1中文微调数据集已上线,超大模型一键部署
7 月的 AI 圈真是卷完小模型卷大模型,精彩不停!大多数同学都能体验 GPT-4o、Mistral-Nemo 这样的小模型,但 Llama-3.1-405B 和 Mistral-Large-2 这样的超大模型让很多小伙伴犯了难。 别担心!hyper.ai 官网在教程板块为大家提供了…...
css实现太极图
<template><div><!-- 太极图 --><div class"all"><div class"left box"></div><div class"right box"></div><div class"black"><div class"inner_white"><…...
Android 13 移植EthernetSettings/Ethernet更新
移植EthernetSettings Android 13 在Settings搜索没有发现以太网设置,应该是移除了,但是客户的设备需要,所以移植Android 11的. 以太网相关的功能在Android13中进行模块化,提取到packages/modules/Connectivity/中, EthernetManager相关代码从framework移到packages/modules/…...
极狐GitLab 如何设置访问令牌前缀?
极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitL…...
leetcode日记(72)最大矩形
依旧是看了答案才知道大概方法…太难想到了 和上一道题思路相似!可以直接调用上题的函数,只不过调用前的准备非常难想到,就是建造形状相同的矩阵,第i行j列的元素是i行中j列前相邻的“1”的个数。 class Solution { public:int m…...
自驾畅游保定:参观总督署,品美食文化
这是学习笔记的第 2490篇文章 前几天跟孩子聊天,孩子说暑假都没出去玩了,暑假旅行的作业咋写?让我有满满的负疚感,去附近的公园、吃点美食不算旅游,得了,得安排一下一日游。 几个月前心心念的去保定&#x…...
我常用的几个傻瓜式爬虫工具,收藏!
爬虫类工具主要两种,一种是编程语言第三方库,比如Python的scrapy、selenium等,需要有一定的代码基础,一种是图形化的web或桌面应用,比如Web Scraper、后羿采集器、八爪鱼采集器、WebHarvy等,接近于傻瓜式操…...
数据分析2 Numpy+Scipy+Matplotlib+Pandas
3.设置坐标范围 mp.xlim(水平坐标最小值, 水平坐标最大值) mp.ylim(垂直坐标最小值, 垂直坐标最大值) 代码:plt3.py 4.设置坐标刻度 mp.xticks(位置序列[, 标签序列]) mp.yticks(位置序列[, 标签序列]) 代码:plt4.py 5.设置坐标轴 坐标轴名:l…...
手机IP地址:是根据网络还是设备决定的?
在日益数字化的今天,手机已经成为我们日常生活中不可或缺的一部分。它不仅是我们沟通的桥梁,更是我们获取信息、享受娱乐和完成工作的得力助手。然而,在使用手机上网的过程中,你是否曾经好奇过手机的IP地址是如何被分配的…...
数据结构-常见的七大排序
上节中我们学习了七大排序中的五种(插入排序、希尔排序、堆排序、选择排序、交换排序) 数据结构-常见的七大排序-CSDN博客 这节我们将要学习快速排序(hoare、指针法、挖洞法(快排的延伸)、快速排序非递归(栈)) 1.快速排序 1.1 hoare法 1.1思路 1.选出一个key,一…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
【Go语言基础【12】】指针:声明、取地址、解引用
文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机
这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
