vue3 挂载全局公共方法/变量/数据

news2024/9/30 8:32:59

前言:
最近开始接触vue3, 需要全局挂在公共函数,Vue.prototype已经不再适用vue3,官网转而推荐使用 app.config.globalProperties 或者 provide;

app-config-globalproperties 官方地址如下:

https://cn.vuejs.org/api/application.html#app-config-globalproperties

vue3 provide 官方地址如下:

https://cn.vuejs.org/api/composition-api-dependency-injection.html#provide

vue2 provide 官方地址如下:

https://v2.cn.vuejs.org/v2/api/#provide-inject

原文地址:点击文字跳转原文

扫码关注公共号查看原文可以提问

在这里插入图片描述

-------------------------正文开始---------------------
1、在 main.js 通过两种方法注入全局函数 asyncDate ,分别利用了 app.config.globalProperties 和 provide 。

注入全局变量示例代码如下:


// main.js

import {
  createSSRApp
} from "vue";
import App from "./App.vue";
import asyncDate from "./common/date.js"
export function createApp() {
  const app = createSSRApp(App);
  // 注入全局 asyncDate
  app.provide('$asyncDate', asyncDate);
  // 挂在全局 $asyncDate 
  app.config.globalProperties.$asyncDate=asyncDate;
  return {
    app
  };
}

// vue3 setup语法

2、获取全局变量示例代码如下:


// vue3 setup语法
<script lang="ts" setup>
import {getCurrentInstance,inject} from 'vue';
const {proxy}=getCurrentInstance();
/* 如果采用 app.config.globalProperties 设置的 $asyncDate ,使用
获取 peoxy.$asyncDate 获取;
*/
let asyncDate=peoxy.$asyncDate;
/* 如果采用 provide 设置的 $asyncDate ,使用获取 inject 获取;
*/
let asyncDate=inject('$asyncDate');
</script>

vue 中的 getCurrentInstance 方法返回了 ctx 和 proxy,控制台打印 ctx 和 proxy 发现和 vue2.x 中的 this 等同,习惯使用 this 的朋友可以用 proxy 进行替代。

3、vue2 语法获取全局变量示例代码如下:

<script>
export default{
  inject: ['$asyncDates'],
  mounted() {
    let asyncDate=this.$asyncDate;
 
  }
}
</script>

3.1 采用 app.config.globalProperties 或者provide 设置的 $asyncDate , 都可以直接使用this 获取;

3.2 如果采用 provide 设置 $asyncDate , 需要配合 inject 一起使用。

provide / inject 注意事项:

这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2179173.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数学建模--什么是数学建模?数学建模应该怎么准备?

前言 这是去年底学数学建模老哥的建模课程笔记&#xff1b;未来本人将陆陆续续的更新数学建模相关的一些基础算法&#xff0c;大家可以持续关注一下&#xff1b;提示&#xff1a;数学建模只有实战才能提升&#xff0c;光学算法没有啥意义&#xff0c;也很难学的很懂。 文章目录…

RNDIS网卡应用看这篇!合宙Air780EP低功耗4G模组AT开发示例

Air780EP是合宙的低功耗4G模组之一&#xff0c;支持全系列的AT指令以及LuatOS脚本二次开发。 本文应各位大佬邀请&#xff0c;特别讲解Air780EP模组AT开发RNDIS网卡应用示例。 本文同样适用于以下型号&#xff1a; Air700ECQ/Air700EAQ/Air700EMQ Air780EQ/Air780EPS/Air780E…

SPDK从安装到运行hello_world示例程序

SPDK从安装到运行示例程序 #mermaid-svg-dwdwvhrJiTcgTkVf {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-dwdwvhrJiTcgTkVf .error-icon{fill:#552222;}#mermaid-svg-dwdwvhrJiTcgTkVf .error-text{fill:#552222;s…

True NAS禁用ipv6

在 TrueNAS Scale 中&#xff0c;禁用 IPv6 的方法如下&#xff1a;12 进入 System->Advanced->Sysctl&#xff0c;设置一个 sysctl 可调整变量 net.ipv6.conf.all.disable_ipv6&#xff0c;值为 1&#xff0c;以完全禁用 IPv6。\

zy78_C#窗体绘图

文章目录 1.绘画的命名空间2.像素和坐标系3.颜色4.Graphics类的部分方法5.画刷&#xff08;Brush&#xff09;6.路径&#xff08;Path&#xff09;7.OnPaint方法8.绘图程序8.1源代码&#xff1a;8.2代码解释1. 构造函数和组件初始化2. 绘制直线3. 清除窗体4. 绘制椭圆5. 更改填…

【C++复习】多态{深入理解多态底层}

文章目录 介绍windows下堆栈相对位置析构函数复习override和final和重载/重定义/重写抽象类多态原理回顾虚基表指针单继承多态底层打印虚函数表多继承多态底层c输出类成员函数地址再次理解多态早期绑定/晚期绑定 介绍 什么是多态 多态&#xff08;Polymorphism&#xff09;是面…

MySQL之分库分表后带来的“副作用”你是怎么解决的?

目录标题 一、垂直分表后带来的隐患二、水平分表后带来的问题1.多表联查问题2.增删改数据问题3.聚合操作问题 三、垂直分库后产生的问题1.跨库join问题2.分布式事务问题3.部分业务库依然存在的性能问题 四、水平分库后需要解决的问题1.聚合操作和连表问题2.数据分页问题3.ID主键…

TypeScript是基于LLM上层研发的受益者

TypeScript优在哪里 TypeScript是一种由微软开发的开源编程语言&#xff0c;它是JavaScript的一个超集&#xff0c;添加了类型系统和一些其他特性。TypeScript的优势在于&#xff1a; 静态类型检查&#xff1a;TypeScript的最大卖点是它的静态类型系统。这允许开发者在编写代码…

PHP 异步编程:从入门到精通

异步编程简介 异步编程是一种允许程序在等待某些操作&#xff08;如I/O操作或长时间运行的任务&#xff09;完成时继续执行其他任务的编程模式。这种方式可以显著提高应用程序的效率&#xff0c;尤其是在处理高延迟操作时。 PHP异步编程的实现 在PHP中&#xff0c;实现异步编…

SpringCloud 配置 feign.hystrix.enabled: true 不生效

SpringCloud 配置 feign.hystrix.enabled: true 不生效的原因 feign 启用 hystrix feign 默认没有启用 hystrix&#xff0c;添加配置&#xff0c;启用 hystrix feign.hystrix.enabledtrue application.yml 添加配置 feign:hystrix:enabled: true启用 hystrix 后&#xff0c;访…

rpm方式安装jdk1.8

1、查询系统中是否已经安装jdk rpm -qa |grep java 或 rpm -qa |grep jdk 2、卸载已有的openjdk rpm -e --nodeps java-1.7.0-openjdk rpm -e --nodeps java-1.7.0-openjdk-headless rpm -e --nodeps java-1.8.0-openjdk rpm -e --nodeps java-1.8.0-openjdk-headless3、安装j…

Windows11系统下Docker环境搭建教程

目录 前言Docker简介安装docker总结 前言 本文为博主在项目环境搭建时记录的Docker安装流程&#xff0c;希望对大家能够有所帮助&#xff0c;不足之处欢迎批评指正&#x1f91d;&#x1f91d;&#x1f91d; Docker简介 Docker 就像一个“容器”平台&#xff0c;可以帮你把应用…

RuoYi框架中的数据完整性异常处理

案例&#xff1a;当你删除的表数据包含外键&#xff0c;关联其他表数据时。删除当前数据&#xff0c;会造成其他数据成为“孤儿”,可能会造成数据混乱。因此我们需要再MySQL中进行外键约束 具体的SQL语句&#xff1a; SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- -------…

北京数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂

随着北京数字孪生工业互联网可视化技术的深入应用&#xff0c;新型工业化智能制造工厂正逐步迈向智能化、高效化的全新阶段。这项技术不仅实现了物理工厂与数字世界的精准映射&#xff0c;更通过大数据分析、人工智能算法等先进手段&#xff0c;为生产流程优化、资源配置合理化…

xmind怎么把左边的主题换到右边

如图&#xff0c;样式——结构这里改变方向即可 附录&#xff1a;快捷键助手&#xff1a;CtrlShift/ 查看快捷键 1.常规 新建思维导图------------------CtrlN 打开--------------------------CtrlO 保存--------------------------CtrlS 另存为------------------------Ct…

Servlet 3.0新特征

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhlServlet 3.0概述 Servlet 3.0规范是在2009年随着Java EE 6的发布而推出的。它引入了一系列新特性和改进,旨在简化Web应用的开发和部署过程,并提高Web应用的性能和可扩展性。Servlet 3.0的发布标…

科技赋能,商贸物流新速度 —— 智慧供应链商城加速企业成长

科技赋能&#xff0c;商贸物流新速度 —— 智慧供应链商城加速企业成长 随着科技的飞速发展&#xff0c;AI&#xff08;人工智能&#xff09;、大数据、物联网等先进技术正深刻重塑着商贸物流行业&#xff0c;推动其向更高效、更智能、更环保的方向迈进。这些技术的应用不仅提…

在MySQL中,要查询所有用户及其权限,您可以使用以下命令:

文章目录 1、查询所有用户1.1、登录数据库1.2、select user,host from mysql.user; 2、查看用户的权限 1、查询所有用户 1.1、登录数据库 [rootlocalhost ~]# docker exec -it spzx-mysql /bin/bash rootab66508d9441:/# mysql -uroot -p123456 mysql: [Warning] Using a pas…

详解mysql和消息队列数据一致性问题

目录 前言 保持系统数据同步&#xff08;双写问题&#xff09; 消息队列消息丢失的问题 总结 前言 在当今互联网飞速发展的时代&#xff0c;随着业务复杂性的不断增加&#xff0c;消息队列作为一种重要的技术手段&#xff0c;越来越多地被应用于各种场景。它们不仅能有效解…

CRUD 开发工具 NocoBase 与 Refine 对比

引言 今天我们来聚焦两款非常优秀的开源 CRUD 开发工具&#xff1a;NocoBase 和 Refine&#xff0c;它们分别是无代码/低代码开发平台和低代码前端开发框架的典型代表。 特别值得一提的是&#xff0c;NocoBase 截止目前已经在GitHub 上获得了 12k 的 Star。Refine 作为 Retool…