vue3——全局挂载,getCurrentInstance,proxy属性

1. messageTools/index.ts

复制代码
import {ElMessage} from "element-plus"

export default {
  // 普通消息提示
  msg(text:any) {
    ElMessage(text);
  },
  // 成功消息提示
  msgSuccess(text:any) {
    ElMessage({
      message: text,
      type: "success"
    });
  },
  // 错误消息提示
  msgError(text:any) {
    ElMessage.error(text);
  },
  // 警告消息提示
  msgWarning(text:any) {
    ElMessage({
      message: text,
      type: "warning"
    });
  },  
}
复制代码

2. main.ts

import {createApp} from "vue"
import App from "./App.vue"
// 全局引入messageTool
import messageTool from "./messageTools"

const app = createApp(App);
// 挂载方法到实例上
app.config.globalProperties.$messageTool = messageTool;

3. demo/index.ts

复制代码
<script lang="ts" setup>
import {getCurrentInstance} from "vue";
// ctx和proxy都是getCurrentInstance属性,但ctx只能在开发环境下使用,生产环境下的ctx访问不到;
// proxy在开发环境和生产环境中都能放到组件的上下文对象(推荐使用proxy)
// const { ctx } = getCurrentInstance(); const { proxy } = getCurrentInstance(); onMounted(() => { getMessage(); }); // 消息提示 const getMessage = () => { proxy.$messageTool.msgWarning("警告消息提示") } </script>
复制代码
posted @   游戏三昧的木笔  阅读(1253)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示