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>