浅谈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 对象链式操作测试代码
Apr 25 Javascript
JavaScript中清空数组的三种方法分享
Apr 07 Javascript
JS获取浏览器版本及名称实现函数
Apr 02 Javascript
js实现浏览器的各种菜单命令比如打印、查看源文件等等
Oct 24 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
Jun 05 Javascript
JQuery菜单效果的两个实例讲解(3)
Sep 17 Javascript
vue插件tab选项卡使用小结
Oct 27 Javascript
基于Marquee.js插件实现的跑马灯效果示例
Jan 25 Javascript
node.js中EJS 模板快速入门教程
May 08 Javascript
React+TypeScript+webpack4多入口配置详解
Aug 08 Javascript
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
Nov 07 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数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
基于Zookeeper的使用详解
2013/05/02 PHP
简单谈谈favicon
2015/06/10 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
JS onkeypress兼容性写法详解
2016/04/27 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
详解React 条件渲染
2020/07/08 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
深入解析Python中的__builtins__内建对象
2016/06/21 Python
基于Django的ModelForm组件(详解)
2017/12/07 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
三个python爬虫项目实例代码
2019/12/28 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
python 写一个水果忍者游戏
2021/01/13 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
英国HYPE双肩包官网:英国本土时尚潮牌
2018/09/26 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
校园摄影活动策划方案
2014/02/05 职场文书
五好党支部事迹材料
2014/02/06 职场文书
学生个人自我鉴定
2014/03/26 职场文书
2014年体育部工作总结
2014/11/13 职场文书
酒店前台岗位职责
2015/04/16 职场文书
步步惊心观后感
2015/06/12 职场文书
体育委员竞选稿
2015/11/21 职场文书
Python Django模型详解
2021/10/05 Python