vue3配置全局参数(挂载全局方法)以及组件的使用

作者:温情key 时间:2023-07-02 16:45:46 

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)

vue3配置全局参数(挂载全局方法)以及组件的使用

在appContext.config.globalProperties里面已经可以看到挂载的$messageBox和$message1了,至于为什么还有一个$message

我们可以看张element plus官网的截图

vue3配置全局参数(挂载全局方法)以及组件的使用

可以看到这是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

标签:vue3,全局参数,挂载全局,组件
0
投稿

猜你喜欢

  • Vue按回车键进行搜索的实现方式

    2024-05-05 09:06:27
  • Python netmiko模块的使用

    2021-07-04 06:42:51
  • python实现逢七拍腿小游戏的思路详解

    2021-02-28 23:44:29
  • python爬虫之验证码篇3-滑动验证码识别技术

    2021-08-19 07:15:38
  • Python3 venv搭建轻量级虚拟环境的步骤(图文)

    2022-11-26 08:47:16
  • ajax xmlhttp getResponseHeader实例教程

    2009-02-04 10:46:00
  • Vue实例中生命周期created和mounted的区别详解

    2024-04-29 13:08:15
  • Windows下mysql5.7.10安装配置方法图文教程

    2024-01-19 16:19:43
  • 理解SQL SERVER中的逻辑读,预读和物理读

    2012-01-05 19:32:29
  • python实现超市扫码仪计费

    2023-01-11 03:53:31
  • Scrapy爬虫Response子类在应用中的问题解析

    2023-11-03 01:29:31
  • python使用pandas按照行数分割表格

    2021-06-25 03:58:51
  • 关于 Python json中load和loads区别

    2021-04-24 20:30:51
  • Python双版本计算器详解

    2021-03-27 13:22:24
  • SQL 中的For Xml Path详解

    2024-01-27 21:19:37
  • 关闭时刷新父窗口两种方法

    2024-06-11 20:21:24
  • JS实现canvas简单小画板功能

    2023-08-21 07:40:49
  • Python动态配置管理Dynaconf的实现示例详解

    2021-01-24 19:35:06
  • 用层模拟下拉列表框

    2013-07-01 01:19:00
  • Python数学形态学实例分析

    2022-11-22 22:32:50
  • asp之家 网络编程 m.aspxhome.com