Vue.use()详解

遇到的问题

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

答案
axios是第三方组件,不是vue自带组件,所以不能用Vue.use(axios)。

定义组件

生成模版  vue init webpack-simple custom-global-component
custom-global-component 为新建的文件夹名称
然后一路回车
cd custom-global-component 进入该文件夹
npm install 安装本次需要的模块
npm run dev 运行项目
如果能正常打开,进行下一步

这是当前项目目录:

项目目录-1.png

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

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

3.在index.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,定义了它全局或者局部使用,所以可以直接使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问题 相信很多人在用Vue使用别人的组件时,会用到 Vue.use() 。例如:Vue.use(VueRouter...
    _vb阅读 4,717评论 0 2
  • 问题 相信很多人在用Vue使用别人的组件时,会用到 Vue.use() 。例如:Vue.use(VueRouter...
    刘员外__阅读 261,856评论 43 123
  • 来源:github.com Vue.js开源项目速查表:https://www.ctolib.com/cheats...
    zhangtaiwei阅读 14,035评论 1 159
  • “还记得年少的梦吗?那一年那一群傻瓜,高喊着死磕到底,别让时间轻易改变它”。 这...
    L风轻云淡阅读 2,823评论 0 0
  • 我知道 前世的我一定是一条蛇 一条好看的漠然的蛇 我的眼睛厌倦了干枯 太疲惫了,我没有害人 也要远远地逃避着恐怖暴...
    伍月的晴空阅读 4,463评论 9 6

友情链接更多精彩内容