当前位置: 首页 > news >正文

app.config.globalProperties

目录

一:基础使用

1、简介

2、使用

3、打印结果:

二:封装

1、创建一个.ts文件(utils/msg.ts)

2、在main.ts中全局注册

3、在页面中使用

4、打印结果


一:基础使用

1、简介

app.config.globalProperties 是 Vue 3 应用实例(app)的一个配置属性,它允许你在整个应用范围内添加全局可用的属性。将一些常用的工具函数挂载到全局属性上,这样在组件中就可以直接调用这些函数,而无需重复导入。

import { createApp } from 'vue';
import App from './App.vue';

// 创建 Vue 应用实例
const app = createApp(App);

// 添加全局属性
app.config.globalProperties.$mes= '这是一个全局消息';
app.config.globalProperties.$meFunction=()=>{
   return '这是个全局函数返回的方法'
};

// 挂载应用
app.mount('#app');

2、使用

<template>
  <div>
    
  </div>
</template>

<script setup lang="ts'>
import { getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance() as any;
console.log("proxy", proxy);
console.log("mes", proxy.$mes);
console.log("msFunction", proxy.$meFunction());
</script>

解释:

getCurrentInstance getCurrentInstance 函数用于获取当前正在活跃的组件实例。在 vue3的组合式 API 中,由于不再像选项式 API 那样有一个明确的 this 指向当前组件实例,当你需要访问组件实例的属性、方法或者上下文信息时,就可以使用 getCurrentInstance 来获取当前组件实例

proxy : Vue 3 里,app.config.globalProperties 可用于给应用添加全局属性,而借助 getCurrentInstance 获取的 proxy 对象能够访问这些全局属性。

3、打印结果:

如果属性很多,不可能全部写在main.ts中,有以下方法

二:封装

1、创建一个.ts文件(utils/msg.ts)

export const msgFunction = (value: any) => {
  return value;
};

2、在main.ts中全局注册

import { createApp } from 'vue';
import App from './App.vue';

// 创建 Vue 应用实例
const app = createApp(App);
import { msgFunction } from "./utils/msg";

// 添加全局属性
app.config.globalProperties.$msgFunction = msgFunction;

// 挂载应用
app.mount('#app');

3、在页面中使用

<template>
  <div>
    
  </div>
</template>

<script setup lang="ts'>
import { getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance() as any;
console.log("proxy", proxy.$msgFunction("你好"));
</script>

4、打印结果

相关文章:

  • 机器学习算法——聚类任务
  • Flink 中RocksDB 为什么将每个键和值的限制为 2^31 字节
  • DeepSeek-prompt指令-当DeepSeek答非所问,应该如何准确的表达我们的诉求?
  • Pytorch实现之BCGAN实现双生成器架构的人脸面部生成
  • 从零开始用AI开发游戏(二)代码实现
  • SolarWinds Web Help Desk漏洞曝光:攻击者可访问存储密码
  • 动态IP vs 静态IP:终极对比一览表
  • 使用LiteFlow实现阻塞审批工作流
  • 前端面试:React hooks 调用是可以写在 if 语句里面吗?
  • JavaScript性能优化实战指南
  • 软件工程概述、软件过程模型、逆向工程(高软45)
  • HTML5拼图游戏开发经验分享
  • Pycharm(五)序列的操作
  • 网络VLAN技术详解:原理、类型与实战配置
  • Elasticsearch Java High Level Client [7.17] 使用
  • K8S学习之基础二十八:k8s中的configMap
  • Interview preparation.md
  • RabbitMQ从入门到实战-知识详情总结
  • 2024下半年真题 系统架构设计师 论文写作 答案解析
  • 基于全局分析SpringCloud各个组件所解决的问题?
  • 小米汽车回应部分SU7前保险杠形变
  • 上海博物馆展览进校园,“小先生”传递文物知识
  • 哈马斯官员:若实现永久停火,可交出加沙地带控制权
  • 上海黄浦江挡潮闸工程建设指挥部成立,组成人员名单公布
  • 端午假期购票日历发布,今日可购买5月29日火车票
  • 崔登荣任国家游泳队总教练