Vue3.0在main.js配置全局属性,及其代替vue2的this、接口使用等等

2 篇文章 0 订阅

注入全局api接口对比

接口封装没什么区别,v2怎么封装,v3拿过来用就行了,主要是在main.js全局的注入使用有所区别

  1. v2
//main.js
import Vue from 'vue';
import App from './App.vue';
import api from './http/api/api.js'//数据接口

Vue.prototype.$api = api;

new Vue({
  render: h => h(App)
}).$mount('#app')
  1. v3
    在vue3.0中注入全局方法不是在prototype上挂载了,而是在config.globalProperties属性上,我在api前面加个$符号还是继承vue2的规范习惯代表全局;
//main.js
import { createApp } from "vue";
import App from "./App.vue";
import api from './http/api/api'//后端数据接口
const app = createApp(App);
app.config.globalProperties.$api=api;
app.mount("#app");

注入后使用

  1. vue2.0
//直接用this点
<script>
export default {
  data() {
    return {
      users: { account: "", password: "" },
    };
  },
  methods: {
    async login() {
      const {data} = await this.$api.users.login(this.users);
     }
      },
};
</script>
  1. vue3.0
    getCurrentInstance代表全局上下文,ctx相当于Vue2的this,
    //但是特别注意ctx代替this只适用于开发阶段,等你放到服务器上运行就会出错,
    //后来查阅资料说的得用proxy替代ctx,才能在你项目正式上线版本正常运行
<template>
<button @click="getArticleAll">获取接口数据</button>
</template>

<script>
import { getCurrentInstance, reactive, ref, } from "vue";
export default {
    setup(){
    //getCurrentInstance代表全局上下文,ctx相当于Vue2的this,
    //但是特别注意ctx代替this只适用于开发阶段,等你放到服务器上运行就会出错,
    //后来查阅资料说的得用proxy替代ctx,才能在你项目正式上线版本正常运行
    let {ctx,proxy}=getCurrentInstance();
    //返回方法供页面使用
        return {...getArticleAllFn(proxy)}
    }
};
//功能模块方法提取出setup中   体现VUE3的灵魂
function getArticleAllFn(proxy) {
 let needData=ref('后端需要的参数')
  async function getArticleAll() {
    try {
    //你封装的接口
     //const data = await ctx.$api.article.getArticleAll(needData);//ctx只能在开发阶段正常使用
      const data = await proxy.$api.article.getArticleAll(needData);
    } catch (error) {
      console.log(error);
    }
  }
 
  return { getArticleAll };
}
</script>

有用的话还是点个赞吧!!!!!!!

  • 22
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vue.js是目前最流行的前端框架之一,它简单、高效、易于学习,同时有着很好的可维护性和可扩展性。随着Vue.js的不断发展和升级,Vue3.0相继推出,Vue.config.js作为Vue.js开发中非常重要的配置文件之一,在Vue3.0中的确被删除了。 在Vue.js中,Vue.config.js是一个重要的配置文件,它可以定义和修改Vue.js应用程序的各种默认设置,比如修改Webpack的配置选项、添加插件等等。然而,在Vue3.0中,Vue.config.js文件已经被删除了,这个文件现在不再起作用。这是因为Vue3.0使用了新的模块化API,这个API允许开发者更加灵活地配置Vue.js应用程序。 新的模块化API是Vue3.0相对于Vue2.0最重要的改变之一,它使用了ES6模块化语法,将Vue.js应用程序分解成了不同的部分,开发者可以在各个模块之间进行灵活的组合和使用。这个新的API允许开发者通过导入和导出模块的方式来进行自定义配置。因此,在Vue3.0中,开发者可以在自己的项目中使用额外的_Vite_或_Rollup_等构建工具,通过使用这些工具来进行对Vue.js应用程序的构建和优化。 总之,尽管Vue.config.jsVue3.0中被删除了,但是Vue3.0带来的新的模块化API却为开发者提供了更加灵活和强大的配置方式。除此之外,Vue3.0还提供了大量的新特性和改进,在性能、可维护性、可扩展性等方面都有了显著的提高,这将对Vue.js的开发者们带来很多的好处。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值