Element Plus 为 app.config.globalProperties 添加了全局方法 $message。 因此在 vue 实例中你可以使用当前页面中的调用方式调用 Message,那如何在js文件中使用全局方法$message
时间: 2024-10-13 08:19:08 浏览: 73
在 Vue 应用中,由于 Element Plus 将 `$message` 方法添加到了全局属性 `app.config.globalProperties` 中,所以在任何 Vue 实例之外,比如单独的 JavaScript 文件里,你也可以直接访问这个方法。不过因为 Vue 的单文件组件(.vue)的生命周期钩子允许你在 `setup` 函数中操作全局属性,所以通常不会直接在 js 文件中使用 `$message`。
如果你想在非Vue组件的外部脚本中使用 `$message`,可以采取以下步骤:
1. 首先,确保你已经通过 `import` 引入了 Element Plus,如果是在 Webpack 环境下,可能需要配置别名(`alias`)指向 Element Plus 的安装目录。
```javascript
import { ElMessage } from 'element-plus';
```
2. 创建一个全局的变量来引用 `$message`,并在适当的时候初始化它:
```javascript
let globalMessage;
if (window.app && window.app.config && window.app.config.globalProperties) {
globalMessage = window.app.config.globalProperties.$message;
} else if (typeof globalThis === 'object' && globalThis.app && globalThis.app.config && globalThis.app.config.globalProperties) {
globalMessage = globalThis.app.config.globalProperties.$message;
}
// 初始化后,就可以使用 globalMessage 来调用 message 方法了
globalMessage.success('这是个消息示例');
```
3. 注意检查 `window.app` 和 `globalThis.app` 是否存在,以适应现代浏览器环境的变化。
如果你需要在非Vue应用的上下文中使用,可以考虑将 `$message` 的实例化过程封装成一个可复用的模块,以便在任何地方都能轻松地使用。
阅读全文