main.js 中的 Vue 是怎么来的?
main.js
import { createApp } from "vue";import "./style.css";
import App from "./App.vue";
import axios from "axios";
createApp(App).mount("#app");
Vue.prototype.$axios = axios;
为什么这个 Vue 可以直接使用,不需要定义、或者导入?
代码出处:vue中如何发起请求
回答:
是需要引入的, 不然会报错没有Vue, createApp是Vue3的, axios这里的是vue2的使用方式, 既然你在项目中用来createApp就不需要如你发的图片中那样了, 可以这样
main.js中:
const app = createApp(App)/* 挂载全局对象 start */
app.config.globalProperties.$http = Axios
/* 挂载全局对象 end */
app.use(router).use(store);
app.mount('#app')
在vue3的setup中使用getCurrentInstanceAPI获取全局对象
组件中:
<template> <div class="box"></div>
</template>
<script>
import { ref, reactive, getCurrentInstance } from 'vue'
export default {
setup(props, cxt) {
// 方法一 start
const currentInstance = getCurrentInstance()
const { $http, $message, $route } = currentInstance.appContext.config.globalProperties
function getList() {
$http({
url: '/api/v1/posts/list'
}).then(res=>{
let { data } = res.data
console.log(data)
})
}
// 方法一 end
// 方法二 start
const { proxy } = getCurrentInstance()
function getData() {
proxy.$http({
url: '/api/v1/posts/list'
}).then(res=>{
let { data } = res.data
console.log(data)
})
}
// 方法二 end
}
}
</script>
以上是 main.js 中的 Vue 是怎么来的? 的全部内容, 来源链接: utcz.com/p/933622.html