a9413ae4e345a7865d2789ac8463f3d3.png

在vue3中是不会直接暴露vue对象给你使用了。所以不能想vue2那样直接在原型上挂载,那么该如何实现公共方法的挂载呢?下面以$axios方法为例,介绍vue3添加公共方法的三种方式。

第一种:使用 app.config.globalProperties 添加

 
 
import { createApp } from 'vue'
import axios from 'axios'


const app = createApp({
  created() {
    console.log(this.$axios)
  }
})
app.config.globalProperties.$axios = axios
app.mount('#root')

在setup中访问(setup中没有this)

 
 
<script setup>
import {getCurrentInstance} from 'vue'
const { proxy } = getCurrentInstance();//获取公用方法proxy.$axios,或者use中方法
const {$axios}=proxy
console.log($axios)
</script>

第二种:使用 app.mixin 添加

 
 
import { createApp} from 'vue'
import axios from 'axios'


const app = createApp({
  created() {
    console.log(this.$axios)
  }
})
app.mixin({
  methods: {
    $axios: axios
  }
})
app.mount('#root')

第三种:采用 provide, inject 方法

需要注意的是这种方法需要组建 inject 注入进组件才能使用。

 
 
import { createApp } from 'vue'
import axios from 'axios'


const app = createApp({
  inject: ['$axios'],
  created() {
    console.log(this.$axios)
  }
})
app.provide('$axios', axios)
app.mount('#root')

本文完~

学习更多技能

请点击下方公众号

2755242a0f11ba59c7fe892949d44749.gif

6af447d2517e0bca18fc3b80c5ca8b6a.png

Logo

前往低代码交流专区

更多推荐