浅谈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 声明全局变量的三种方式详解
May 07 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
Javascript实现Web颜色值转换
Feb 05 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
node.js使用cluster实现多进程
Mar 17 Javascript
AngularJs expression详解及简单示例
Sep 01 Javascript
JS实现图片拖拽交换效果
Nov 30 Javascript
JSON基本语法及与JavaScript的异同实例分析
Jan 04 Javascript
小程序server请求微信服务器超时的解决方法
May 21 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
Jul 24 Javascript
vue 通过绑定事件获取当前行的id操作
Jul 27 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文档更新介绍
2011/07/22 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
PHP基于mcript扩展实现对称加密功能示例
2019/02/21 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
用window.location.href实现刷新另个框架页面
2007/03/07 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
解决IE6的PNG透明JS插件使用介绍
2013/04/17 Javascript
jQuery+html5实现div弹出层并遮罩背景
2015/04/15 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
Python实现的弹球小游戏示例
2017/08/01 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python判断完全平方数的方法
2018/11/13 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
python实现用户名密码校验
2020/03/18 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
python Xpath语法的使用
2020/11/26 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
泰国的头号网上婴儿用品店:Motherhood.co.th
2019/04/09 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
党课学习思想汇报
2014/01/02 职场文书
教师个人鉴定材料
2014/02/08 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
地球一小时宣传标语
2014/06/24 职场文书
赢在中国观后感
2015/06/02 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
体育委员竞选稿
2015/11/21 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL