vue3은 전역 매개변수와 구성요소 사용 방법을 구성합니다.

王林
풀어 주다: 2023-05-15 18:58:04
앞으로
3083명이 탐색했습니다.

vue2 way

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 way

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;
로그인 후 복사

// 引入vue的 getCurrentInstance 方法
import { defineComponent, getCurrentInstance } from "vue";
// 获取当前组件实例
const { appContext } = getCurrentInstance();
// 打印看一下结构
console.log(appContext)
로그인 후 복사

vue3은 전역 매개변수와 구성요소 사용 방법을 구성합니다.

appContext.config.globalProperties에서 이미 마운트된 $messageBox 및 $message1을 볼 수 있습니다. 여전히 $message

가 있는 이유는 요소의 스크린샷과 공식 웹사이트를 볼 수 있습니다

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
 	 }
   }
})
로그인 후 복사

위 내용은 vue3은 전역 매개변수와 구성요소 사용 방법을 구성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:yisu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿