关于axios不能使用Vue.use()浅析


Posted in Javascript onJanuary 12, 2018

前言

最近在学习axios,在使用过程遇到了一些问题,觉着有必要给大家分享下,关于axios的基本知识大家可以参考这篇文章:axios基本入门用法教程 ,下面话不多说了,来一起看看详细的介绍吧。

问题

相信很多人在用Vue使用别人的组件时,会用到 Vue.use() 。例如:Vue.use(VueRouter)Vue.use(MintUI) 。但是用 axios时,就不需要用 Vue.use(axios) ,就能直接使用。那这是为什么呐?

答案

因为 axios 没有 install。

什么意思呢?接下来我们自定义一个需要 Vue.use() 的组件,也就是有 install 的组件,看完之后就明白了。

定义组件

生成模版  vue init webpack-simple custom-global-component

custom-global-component 为新建的文件夹名称

然后一路回车

cd custom-global-component 进入该文件夹

npm install 安装本次需要的模块

npm run dev 运行项目

如果能正常打开,进行下一步

这是当前项目目录:

关于axios不能使用Vue.use()浅析
项目目录

1.创建如下图中的文件夹和文件

关于axios不能使用Vue.use()浅析

项目目录

2.在 Loading.vue 中定义一个组件

<template>
 <div class="loading-box">
 Loading...
 </div>
</template>

3.在 jndex.js 中 引入 Loading.vue ,并导出

// 引入组件
import LoadingComponent from './loading.vue'
// 定义 Loading 对象
const Loading={
 // install 是默认的方法。当外界在 use 这个组件的时候,就会调用本身的 install 方法,同时传一个 Vue 这个类的参数。
 install:function(Vue){
 Vue.component('Loading',LoadingComponent)
 }
}
// 导出
export default Loading

4.在 main.js 中引入 loading 文件下的 index

// 其中'./components/loading/index' 的 /index 可以不写,webpack会自动找到并加载 index 。如果是其他的名字就需要写上。
import Loading from './components/loading/index'
// 这时需要 use(Loading),如果不写 Vue.use()的话,浏览器会报错,大家可以试一下
Vue.use(Loading)

5.在App.vue里面写入定义好的组件标签 <Loading></Loading>

<template>
 <div id="app">
 <h1>vue-loading</h1>
 <Loading></Loading>
 </div>
</template>

6.看到这儿大家应该就明白了吧,用 axios时,之所以不需要用 Vue.use(axios) ,就能直接使用,是因为开发者在封装 axios 时,没有写 install 这一步。至于为啥没写,那就不得而知了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
用正则xmlHttp实现的偷(转)
Jan 22 Javascript
页面中iframe相互传值传参
Dec 13 Javascript
textarea中的手动换行处理的jquery代码
Feb 26 Javascript
Extjs Gird 支持中文拼音排序实现代码
Apr 15 Javascript
js简单的表格添加行和删除行操作示例
Mar 31 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
jquery密码强度校验
Dec 02 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
Dec 09 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
Jul 21 Javascript
Vuex 进阶之模块化组织详解
Jan 12 #Javascript
动态Axios的配置步骤详解
Jan 12 #Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 #Javascript
使用JS获取SessionStorage的值
Jan 12 #Javascript
node.js+express+mySQL+ejs+bootstrop实现网站登录注册功能
Jan 12 #Javascript
web前端vue filter 过滤器
Jan 12 #Javascript
你可能不知道的前端算法之文字避让(inMap)
Jan 12 #Javascript
You might like
用PHP连接MySQL代码的参数说明
2008/06/07 PHP
认识并使用PHP超级全局变量
2010/01/26 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
PHP链表操作简单示例
2016/10/15 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
php中关于换行的实例写法
2019/09/26 PHP
PHP实现图片防盗链破解操作示例【解决图片防盗链问题/反向代理】
2020/05/29 PHP
一文看懂PHP进程管理器php-fpm
2020/06/01 PHP
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
微信小程序之onLaunch与onload异步问题详解
2019/03/28 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
python批量下载图片的三种方法
2013/04/22 Python
python数字图像处理之高级滤波代码详解
2017/11/23 Python
Python3中的bytes和str类型详解
2019/05/02 Python
使用python绘制二维图形示例
2019/11/22 Python
tensorflow 实现自定义梯度反向传播代码
2020/02/10 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
Java的for语句中break, continue和return的区别
2013/12/19 面试题
linux面试题参考答案(10)
2013/11/04 面试题
《燕子专列》教学反思
2014/02/21 职场文书
党员个人剖析材料
2014/09/30 职场文书
公务员检讨书
2014/11/01 职场文书
迁徙的鸟观后感
2015/06/09 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
php字符串倒叙
2021/04/01 PHP