vue3配置全局参数(挂载全局方法)以及组件的使用
作者:温情key 发布时间:2023-07-02 16:45:46
标签:vue3,全局参数,挂载全局,组件
vue2的方式
1. 全局挂载
Vue.property.xxx
import Vue from "vue";
import axios from "axios";
Vue.prototype.$http= axios;
new Vue({
router,
store,
render: (h) => h(App),
}).$mount("#app");
2. 组件使用
this.$http.xxx();
vue3的方式
1. 全局挂载
app.config.globalProperties.xxx
import { createApp } from 'vue'
import App from './App.vue'
import ElementPlus, { ElMessage, ElMessageBox } from 'element-plus'
import 'element-plus/dist/index.css'
const app = createApp(App);
app.config.globalProperties.$messageBox = ElMessageBox;
app.config.globalProperties.$message1 = ElMessage;
2. 组件使用
// 引入vue的 getCurrentInstance 方法
import { defineComponent, getCurrentInstance } from "vue";
// 获取当前组件实例
const { appContext } = getCurrentInstance();
// 打印看一下结构
console.log(appContext)
在appContext.config.globalProperties里面已经可以看到挂载的$messageBox和$message1了,至于为什么还有一个$message
我们可以看张element plus官网的截图
可以看到这是element plus默认挂载的,我们可以直接使用,这里添加$message1只是演示,其实是可以直接使用默认挂载的。
完整使用例子
// 引入vue的 getCurrentInstance 方法
import { defineComponent, getCurrentInstance } from "vue";
// 获取当前组件实例
const { appContext } = getCurrentInstance();
const globalProxy = appContext.config.globalProperties;
export default defineComponent({
setup() {
// 退出登录按钮
const loginOut = () => {
globalProxy.$messageBox.confirm("确定退出登录吗?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
setTimeout(() => {
globalProxy.$message1({message: "已退出登录", type: "success"});
localStorage.removeItem("userInfo");
router.push("/login");
}, 200);
})
.catch((e) => {
console.log(e);
});
};
return {
loginOut
}
}
})
来源:https://blog.csdn.net/qq_48960335/article/details/124246217


猜你喜欢
- SQL Server 2016真的让人眼前一亮。几天前微软就提供了RCO(候选发布版)版本的下载。我已经围观了一圈RCO版本,其中一个最拽的
- pytorch和numpy默认浮点类型位数numpy中默认浮点类型为64位,pytorch中默认浮点类型位32位测试代码如下numpy版本:
- 由于工作需要本文主结合了excel表格,对表格中的ssh密码进行批量修改以下是详细代码(python3):'''遇到
- 本文实例讲述了JS学习笔记之数组去重实现方法。分享给大家供大家参考,具体如下:操作的数组 let arr=[0,1,23,'1
- #第一种def delRepeat(liebiao): for x in liebiao: while li
- 最近有个朋友问我关于 Node.js 下使用 ECDSA 的问题,主要是使用 Node.js 的 Crypto 模块无法校验网络传输过来的签
- #常用的几个代码--查询临时表空间select name from v$tempfile;--查询表空间select name from v
- Python线程与进程进程:进程是程序的一次执行,每个进程都有自己的地址空间、内存、数据栈以及其他记录其运行的辅助数据。线程:所有的线程运行
- 使用Python实现Word文档的自动化处理,包括批量生成Word文档、在Word文档中批量进行查找和替换、将Word文档批量转换成PDF等
- 在.net 1.1中我们要实现压缩这一功能,一般都是用open source的SharpZipLib 或者调用
- urllib中的异常处理在我们写爬虫程序时,若出现url中的错误,那么我们就无法爬取我们想要的内容,对此,我们引入了urllib中的异常处理
- Django Model的外键自关联在django的model定义中,有时需要某个Field引用当前定义的Model,比如一个部门(Depa
- 1.首先分析要做的项目的结构,整理出关系图2.运行 python manage.py startapp XXX 创建一个app3.根据关系图
- 本文实例讲述了Python Web框架之Django框架Model基础。分享给大家供大家参考,具体如下:model是关于你的数据的单一的,确
- matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也
- 本文实例讲述了Python创建模块及模块导入的方法。分享给大家供大家参考。具体分析如下:python学习手册中写道:定义模块,只要使用文本编
- 先来看个例子:#-*- coding:utf8 -*-s = u'中文截取's.decode('utf8')
- 举例如下:<HTML> <HEAD>  
- 需求:实现ajax请求,在界面上任意地方点击,可以成功传参。创建项目如下所示:settings.py文件的设置,这次我们除了要注册app和设
- 1. 为什么不使用GridView的默认分页功能 首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何