在Vue中如何注册一个全局组件 && Vue.use底层实现方法

主要使用了三个方法 

  install:(Vue)=>{},Vue.componet("注册的组件名","封装的组件") ,  Vue.use();

eg:封装一个全局标题组件

1.建立一个titile.vue文件,将你想展示的内容写到这个文件中

<template>
  <div>
    我是全局标题组件
  </div>
</template>

<script>
  export default {
    name:"title",
    data() {
      return {
        name: 1
      }
    },
  }
</script>

<style lang="less" scoped>

</style>

2.建立一个titile.js文件,引入title.vue文件,将这个文件抛出

import Title from "./title.vue";

export default {
  install: (Vue) => {
    Vue.component("myTitle", Title)  //这个myTitle就是你页面中使用的
  }
}

3.在入口主文件中挂载组件 main.js

//自定义全局组件
import myComponets from "./components/global/title.js";
Vue.use(myComponets)


//然后在页面中直接使用<myTitle></myTitle>就可以了

ps:vue.use()方法和在prototype挂载的区别

vue.use实际上是调用了ininUse方法,这个方法有一个参数就是传递的组件,这个参数(plugin)必须是array或者object;

在这个方法里面会有一个install方法,用来注册组件,但是只有没有注册过的组件才会被注册(会有一个变量instatedPlugins来判断组件是否在该变量中存在);

而prototype只能挂载一些方法

原文地址:https://www.cnblogs.com/wangqi2019/p/14328621.html