浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件


Posted in Javascript onDecember 07, 2017

简介

Vue.use( plugin ):安装 Vue.js 插件。如果插件是一个对象,必须提供 install 方法。如果插件是一个函数,它会被作为 install 方法。install 方法将被作为 Vue 的参数调用。

当 install 方法被同一个插件多次调用,插件将只会被安装一次。

Vue.js 的插件应当有一个公开方法 install 。这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象:

MyPlugin.install = function (Vue, options) {
 // 1. 添加全局方法或属性
 Vue.myGlobalMethod = function () {
  // 逻辑...
 }
 // 2. 添加全局资源
 Vue.directive('my-directive', {
  bind (el, binding, vnode, oldVnode) {
   // 逻辑...
  }
  ...
 })
 // 3. 注入组件
 Vue.mixin({
  created: function () {
   // 逻辑...
  }
  ...
 })
 // 4. 添加实例方法
 Vue.prototype.$myMethod = function (methodOptions) {
  // 逻辑...
 }
}

通过全局方法 Vue.use() 使用插件:

// 调用 `MyPlugin.install(Vue)`
Vue.use(MyPlugin)

也可以传入一个选项对象:

Vue.use(MyPlugin, { someOption: true })

Vue.use 会自动阻止多次注册相同插件,届时只会注册一次该插件。

Vue.js 官方提供的一些插件 (例如 vue-router) 在检测到 Vue 是可访问的全局变量时会自动调用 Vue.use()。然而在例如 CommonJS 的模块环境中,你应该始终显式地调用 Vue.use():

// 用 Browserify 或 webpack 提供的 CommonJS 模块环境时
var Vue = require('vue')
var VueRouter = require('vue-router')
// 不要忘了调用此方法
Vue.use(VueRouter)

实例:实现一个children组件

在main.js中使用该组件的方法:

import childModule from './components/children'
Vue.use(childModule)

组件文件夹的目录结构如下:

|-components
|-children


|-index.js 导出组件,并且install


|-children.vue (定义自己的组件模板)

children.vue代码如下:

import childrencomponent from './children.vue'
const childrenMo = {
  install:function(Vue){
    Vue.component('childModule',childrencomponent)
  }
}
export default childrenMo

这样就实现了一个通过vue.use调用一个全局组件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript实现二分查找法实现代码
Nov 12 Javascript
ExtJS Store的数据访问与更新问题
Apr 28 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
浅谈javascript的调试
Jan 28 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
JavaScript异步加载问题总结
Feb 17 Javascript
详解javascript中的Error对象
Apr 25 Javascript
Vue实现微信支付功能遇到的坑
Jun 05 Javascript
在Vue中用canvas实现二维码和图片合成海报的方法
Jun 10 Javascript
js面向对象之实现淘宝放大镜
Jan 15 Javascript
Vue点击切换Class变化,实现Active当前样式操作
Jul 17 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
Dec 07 #Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 #jQuery
vue中路由参数传递可能会遇到的坑
Dec 07 #Javascript
浅谈AngularJs 双向绑定原理(数据绑定机制)
Dec 07 #Javascript
面包屑导航详解
Dec 07 #Javascript
谈谈JS中的!!
Dec 07 #Javascript
JS动态添加元素及绑定事件造成程序重复执行解决
Dec 07 #Javascript
You might like
php adodb操作mysql数据库
2009/03/19 PHP
PHP中用hash实现的数组
2011/07/17 PHP
PHP fopen 读取带中文URL地址的一点见解
2012/09/25 PHP
php笔记之:php数组相关函数的使用
2013/04/26 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
降低PHP Redis内存占用
2017/03/23 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
javascript操作referer详细解析
2014/03/10 Javascript
node.js中的fs.fsync方法使用说明
2014/12/15 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
HTML的select控件美化
2017/03/27 Javascript
Angular2数据绑定详解
2017/04/18 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
Angularjs的启动过程分析
2017/07/18 Javascript
AngularJS遍历获取数组元素的方法示例
2017/11/11 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
JavaScript根据json生成html表格的示例代码
2018/10/24 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
Python远程桌面协议RDPY安装使用介绍
2015/04/15 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
致Python初学者 Anaconda入门使用指南完整版
2018/04/05 Python
Tensorflow中的placeholder和feed_dict的使用
2018/07/09 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
django配置app中的静态文件步骤
2020/03/27 Python
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
建设工地安全标语
2014/06/07 职场文书
政风行风评议个人心得体会
2014/10/29 职场文书
语文教师个人工作总结
2015/02/06 职场文书
2019七夕节祝福语36句,快来收藏吧
2019/08/06 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
Python如何识别银行卡卡号?
2021/06/10 Python