浅谈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 相关文章推荐
静态的动态续篇之来点XML
Aug 15 Javascript
JQuery的ajax获取数据后的处理总结(html,xml,json)
Jul 14 Javascript
Juqery Html(),append()等方法的Bug解决方法
Dec 13 Javascript
JS删除数组元素的函数介绍
Mar 27 Javascript
js倒计时小程序
Nov 05 Javascript
js动态添加onclick事件可传参数与不传参数
Jul 29 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
jquery日历插件e-calendar升级版
Nov 10 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
JavaScript字符串_动力节点Java学院整理
Jun 27 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 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 flush类输出缓冲剖析
2008/10/19 PHP
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
兼容主流浏览器的JS复制内容到剪贴板
2014/12/12 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
深入理解JavaScript继承的多种方式和优缺点
2017/05/12 Javascript
Vue DevTools调试工具的使用
2017/12/05 Javascript
Vuex 快速入门(简单易懂)
2018/09/20 Javascript
在vue项目中引入vue-beauty操作方法
2019/02/11 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
Python SQLite3简介
2018/02/22 Python
django+mysql的使用示例
2018/11/23 Python
python做反被爬保护的方法
2019/07/01 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
2021/03/04 Python
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
贸易跟单员英文求职信
2014/04/19 职场文书
学术研讨会主持词
2015/07/04 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
导游词之唐山景点
2019/12/18 职场文书
python 如何在list中找Topk的数值和索引
2021/05/20 Python
Python数据分析之pandas读取数据
2021/06/02 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS
angular异步验证器防抖实例详解
2022/03/31 Javascript