H5前端资料技术分享专题纵横研究院VU...零基础转行前端

教你用vue的install方法来创建工具类函数及全局组件

2020-10-29  本文已影响0人  我的弟弟叫泥鳅

我们在利用vue的cli来做开发的时候,我们会引入一些框架以及各种插件,我们经常能看到类似于

Vue.use(Element, {
  size: Cookies.get('size') || 'medium'
})
Vue.use(Vant)

这样的代码,老弟,牛X哈,这代码一看就高大上呀。
实际上,这个是通过vue官方暴露出来的开发插件的install方法来实现的,下面我弟弟就教你如何来实现这种“牛X”操作.
我们先来看官网给出的install解释


QQ截图20201028104308.png

看起来也不过如此嘛,让我们手动操作一下!
我们先来进行工具类的封装
首先呢,我们在我们的utils(你随意开心命名)文件夹下定义一个叫tools.js的js文件
然后呢。

//tools.js
const exampleFunc {
  install (Vue, options) {
    Vue.prototype.customerTools = {
     //这里随便粘贴了两个方法作为示例      
     //深度拷贝
     deepClone(source) {
            if (!source && typeof source !== 'object') {
                throw new Error('error arguments', 'shallowClone');
            }
            const targetObj = source.constructor === Array ? [] : {};
            for (const keys in source) {
                if (source.hasOwnProperty(keys)) {
                    if (source[keys] && typeof source[keys] === 'object') {
                        targetObj[keys] = source[keys].constructor === Array ? [] : {};
                        targetObj[keys] = deepClone(source[keys]);
                    } else {
                        targetObj[keys] = source[keys];
                    }
                }
            }
            return targetObj;
        },
        
        //获取网页url?后面的参数值
        getQueryString(name) {
          var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
          var r = window.location.search.substr(1).match(reg);
          if (r != null) {
            return unescape(r[2]);
          }
          return null;
        }
        
  }
}
export default exampleFunc 

至此,我们的工作进行了99%,剩下那1%,我们在src/main.js文件里面进行,这个是我们程序的入口文件,主要是用来加载各种公共组件和方法的

//main.js
import exampleFunc from './utils/tools'
Vue.use(exampleFunc)
//好了,没啦。是不是看起来很简单?

接下来我们就在各种页面里调用方法就可以啦

//example.vue
mounted() {
let array = [...]
    //尝试调用一下深拷贝方法,ok!
    this.customerTools.deepClone(array)
},

工具类函数被我们成功送上天了。下面就剩组件了,到这里,怎么利用install创建全局组件我们是不是心里都有点笔数了,一奶同胞呀。
我们创建一个a.vue在main.js同级的文件夹views下

//a.vue
<template>
    <div>
        组件
    </div>
</template>
 
<script>
    export default {
 
    }
</script>
 
<style scoped>
   
</style

然后呢,我们在统计文件夹下创建一个js文件,就叫a-export.js

//a-export.js
import acomponent from './Cmponent.vue'
const avue = {
    install (Vue,options) {
        Vue.component('a-vue',acomponent)//前面的a-vue就是我们后面使用的组件名称,后面的acomponent是我们导入的组件文件
    }
}
export default avue

然后呢,跟我们创建工具类方法引用一样

//main.js
import avue from './views/a-export.js'
Vue.use(avue)

然后你页面就可以使用这个avue组件啦

//某某某.vue
<template>
  <div>
    <a-vue><a-vue>
  </div>
</template>

装逼完毕,吕某人吃饭去了~~~~感觉对您有用的麻烦给个小心心,谢谢!

上一篇下一篇

猜你喜欢

热点阅读