Vue.prototype.$Jmessage.loading('登录已过期,正在重新登陆', 0) vue2.x转化vue3.x
时间: 2024-09-19 16:10:02 浏览: 43
在Vue.js 2.x版本中,`Vue.prototype.$Jmessage` 是一个全局混入的对象,它提供了一些消息提示的功能。当你想要显示加载提示并显示一条文本信息时,可以使用类似 `Vue.prototype.$Jmessage.loading('登录已过期,正在重新登陆', 0)` 这样的方法。
然而,在Vue.js 3.x版本中,由于不再直接在原型上添加全局属性,而是推荐使用 Composition API 或者 Options API 的方式。如果你需要保持这种全局通知的行为,你可以创建一个自定义的插件 (plugin),将 `$Jmessage` 对象作为这个插件的一部分,并注入到每个组件实例中。
例如,创建一个名为 `JMessagePlugin.js` 的文件:
```javascript
// JMessagePlugin.js
export default {
install(app) {
app.config.globalProperties.$Jmessage = {
loading(text, duration = 0) {
// 实现你的loading逻辑
console.log(`Loading... ${text}`);
setTimeout(() => {
console.log('Done loading');
}, duration);
},
};
},
};
```
然后在主入口文件 `main.js` 中安装这个插件:
```javascript
import { createApp } from 'vue';
import JMessagePlugin from './plugins/JMessagePlugin';
const app = createApp(App);
app.use(JMessagePlugin);
app.mount('#app');
```
现在在Vue 3.x的组件里,你可以像在2.x那样使用`$Jmessage.loading`方法了:
```javascript
methods: {
handleLogin() {
this.$Jmessage.loading('登录已过期,正在重新登陆', 0);
// ... 登录逻辑
}
}
```
阅读全文