zoukankan      html  css  js  c++  java
  • Vue.use初探

    Vue.use

    问题

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

    答案

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

    建立一个简单的项目,项目结构如下:

    src/components/loading目录下建立两个文件,分别是index.jsloading.vue

    loading.vue的代码如下

    <template>
      <div>
        Loading.........
      </div>
    </template>
    
    <script>
      export default {
        data() {
          return {
    
          }
        },
        components: {
    
        }
      }
    
    </script>
    
    <style>
    
    
    </style>
    

    index.js的代码:

    import LoadingComponent from "./loading"
    
    const Loading = {
        // install 是默认的方法。当 use 这个组件的时候,就会调用本身的 install 方法,同时传一个 Vue 这个类的参数。
        // install 方法的第一个参数就是Vue
        install: function (Vue) {
            this.util.init()
            Vue.component('Loading', LoadingComponent)
            console.log('component register to gobla context......')
        },
        // 在这里面可以添加其它的逻辑
        util: {
            init:function name() {
                console.log('component init.........')
            }
        }
    }
    // 导出
    export default Loading
    

    使用

    接下来在main.js中use该组件

    import Vue from 'vue'
    import App from './App.vue'
    import Loading from './components/loading/index'   // index可以不用写,默认加载index.js
    
    // 全局注册组件  执行组件的install
    Vue.use(Loading)
    
    new Vue({
      el: '#app',
      render: h => h(App)
    })
    

    在Loading组件的install方法中我们已经使用Vue.component方法注册了组件
    所以在App.vue中直接使用即可

    <template>
        <div>
            <h1>vue loading</h1>
            <Loading /> 
        </div>
    
    </template>
    
    <script>
    //import Loading from './components/loading/loading.vue'
    export default {
      name: 'app',
      data () {
        return {
          msg: 'Welcome to Your Vue.js App'
        }
      },
      // 局部注册组件
    //   components:{
    //       Loading
    //   }
    }
    </script>
    
    <style>
    
    </style>
    
    

    这样我们在Vue全局中注册了该组件,在vue的任何一个实例上可以直接使用

  • 相关阅读:
    JDK1.7.0环境变量配置【Windows】
    QQ游戏百万人同时在线服务器架构实现
    C#关于AutoResetEvent的使用介绍[转载]
    ConcurrentDictionary:.NET 4.0中新的线程安全的哈希表
    大型网站采用的具有稳定性的系统构架
    简单使用Enterprise Library 5.0 中的Cache功能
    来电显示MODEM的的选购指南
    浅谈大型网站动态应用系统架构
    log4net工程中使用备忘
    稳定高效大型系统架构集群中间件开发
  • 原文地址:https://www.cnblogs.com/watertreestar/p/11780258.html
Copyright © 2011-2022 走看看