关于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 相关文章推荐
基于jquery实现的服务器验证控件的启用和禁用代码
Apr 27 Javascript
基于jquery的一个拖拽到指定区域内的效果
Sep 21 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
Apr 07 Javascript
如何创建一个JavaScript弹出DIV窗口层的效果
Sep 25 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
vue父子组件的数据传递示例
Mar 07 Javascript
Angular.js组件之input mask对input输入进行格式化详解
Jul 10 Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 jQuery
JS中获取 DOM 元素的绝对位置实例详解
Apr 23 Javascript
JQuery表单元素取值赋值方法总结
May 12 jQuery
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
JAVA/JSP学习系列之七
2006/10/09 PHP
PHP中ADODB类详解
2008/03/25 PHP
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
浅谈json_encode用法
2015/03/05 PHP
php文件系统处理方法小结
2016/05/23 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
Javascript 函数中的参数使用分析
2010/03/27 Javascript
Google Dart编程语法和基本类型学习教程
2013/11/27 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
2017/02/22 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
2020/04/21 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
深入分析在Python模块顶层运行的代码引起的一个Bug
2014/07/04 Python
python中去空格函数的用法
2014/08/21 Python
python fabric实现远程部署
2017/01/05 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
HTML5中外部浏览器唤起微信分享
2020/01/02 HTML / CSS
沪江旗下的海量优质课程平台:沪江网校
2017/11/07 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
后勤人员岗位职责
2013/12/17 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
党员领导干部承诺书
2014/05/28 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
民间借贷纠纷答辩状
2015/08/03 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
职工的安全责任书范文!
2019/07/02 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers