为什么在项目里的main.js里引入了在axios,在其他 .vue页面里使用提示未定义?为什么必须在 .vue的当前页面引入axios才能够使用?
2 回答
湖上湖
TA贡献2003条经验 获得超2个赞
因为每个vue组件有独立的作用域。要全局使用可以把axios挂载到Vue的原型上。然后在组件内通过this访问。
import Vue from 'vue'
import axios from 'axios'
Vue.prototype.axios = axios
//在组件中
this.axios(opt).then(fn)
侃侃尔雅
TA贡献1801条经验 获得超16个赞
其实你疑惑的是为什么要这么麻烦, 要么在main里面把axios放到vue的原型里用, 要么每个.vue 组件内 import.
为什么不跟以前写jquery一样, script引入就能在页面的任何一个地方用.
其实这就是一个模块化开发的理念. JS之间的互相依赖问题. 就好像你写 .vue 组件, 你必须在父组件内 import 然后注册到componets内才能用的道理是一样的.
以后别人维护你代码的时候就能一眼就能看到每个文件之间的依赖关系和路径, 不会出现出现一个BUG, 然后整个项目的找代码的情况.
有兴趣就去搜索一下模块化开发的相关知识吧.
添加回答
举报
0/150
提交
取消