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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构