浅谈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 相关文章推荐
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
jquery.multiselect多选下拉框实现代码
Nov 11 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
Mar 09 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
javascript实现循环广告条效果
Dec 12 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
Vue常用的几个指令附完整案例
Nov 06 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
前端Vue项目详解--初始化及导航栏
Jun 24 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 函数语法介绍一
2009/06/14 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php恢复数组的key为数字序列的方法
2015/04/28 PHP
PHP日志LOG类定义与用法示例
2018/09/06 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
csdn 博客中实现运行代码功能实现
2009/08/29 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
Angularjs在360兼容模式下取数据缓存问题的解决办法
2017/06/22 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
python中hashlib模块用法示例
2017/10/30 Python
Python实现的计数排序算法示例
2017/11/29 Python
Python命令行解析模块详解
2018/02/01 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
2021年值得向Python开发者推荐的VS Code扩展插件
2021/01/25 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
澳大利亚电子产品购物网站:Dick Smith
2017/02/02 全球购物
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
六一领导慰问欢迎词
2015/01/26 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫
Nginx设置HTTPS的方法步骤 443证书配置方法
2022/03/21 Servers
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python