浅谈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 相关文章推荐
JS文本框默认值处理详解
Jul 10 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
May 04 Javascript
JavaScript支持的最大递归调用次数分析
Jun 24 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
Oct 16 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 Javascript
完美解决IE9浏览器出现的对象未定义问题
Sep 29 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 Javascript
JS声明对象时属性名加引号与不加引号的问题及解决方法
Feb 16 Javascript
element-ui upload组件多文件上传的示例代码
Oct 17 Javascript
vue图片上传组件使用详解
Dec 23 Javascript
VUE实时监听元素距离顶部高度的操作
Jul 29 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
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
javascript面向对象的方式实现的弹出层效果代码
2010/01/28 Javascript
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
原生js和jQuery实现淡入淡出轮播效果
2015/12/25 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
bootstrap输入框组使用方法
2017/02/07 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
详解从Vue-router到html5的pushState
2018/07/21 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
在Python操作时间和日期之asctime()方法的使用
2015/05/22 Python
python读取Excel实例详解
2018/08/17 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
Python函数参数分类原理详解
2020/05/28 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
2020/10/15 Python
澳大利亚在线百货商店:Real Smart
2017/08/13 全球购物
美国领先的奢侈手表在线零售商:WatchMaxx
2017/12/17 全球购物
西班牙家用电器和电子产品购物网站:Mi Electro
2019/02/25 全球购物
数学高效课堂实施方案
2014/03/29 职场文书
规范化管理年活动总结
2014/08/29 职场文书
Python 如何实现文件自动去重
2021/06/02 Python