Vue.prototype.$Jmessage.loading('登录已过期,正在重新登陆', 0) vue2.x转化为vue3.x
时间: 2024-09-19 21:09:59 浏览: 72
在Vue 2.x中,`Vue.prototype.$Jmessage`是一个自定义的对象,它提供了一个`loading`方法用于显示加载提示信息。然而,在Vue 3.x中,由于不再直接操作原型链($开头的方法被认为是“全局API”,不推荐),你可能会通过以下几种方式来实现类似功能:
1. **Composition API**:
使用Vue 3的Composition API,你可以创建一个名为`useLoading`的函数来封装这个行为:
```javascript
import { ref } from 'vue';
const loading = ref(false);
function setLoading(message, duration) {
loading.value = true;
setTimeout(() => {
loading.value = false;
}, duration);
// 模拟原来的效果
if (loading.value) {
console.log(message, duration);
}
}
export default { setLoading };
```
然后在组件内导入并使用`setLoading`。
2. **setup()** 函数:
如果是在单文件组件中,可以使用`setup()`函数:
```javascript
import { onMounted } from 'vue';
const showMessage = async () => {
await new Promise((resolve) => setTimeout(resolve, 1000));
console.log('登录已过期,正在重新登陆');
};
setup() {
const showLoading = async () => {
console.log('加载中...');
await showMessage();
};
return {
showLoading,
};
}
```
在这个例子中,你需要在模板中手动调用`showLoading`方法来显示加载提示。
无论是哪种方法,都是为了将特定的功能从原型链解耦出来,保持组件的独立性和代码的清晰度。
阅读全文