浅谈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 相关文章推荐
为数据添加append,remove功能
Oct 03 Javascript
AngularJS HTML编译器介绍
Dec 06 Javascript
Node.js事件驱动
Jun 18 Javascript
javascript实现动态标签云
Oct 16 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
原生js仿浏览器滚动条效果
Mar 02 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
Vue中如何实现轮播图的示例代码
Jul 27 Javascript
ReactJs实现树形结构的数据显示的组件的示例
Aug 18 Javascript
vue计算属性及使用详解
Apr 02 Javascript
WebPack配置vue多页面的技巧
May 15 Javascript
Vue Element UI自定义描述列表组件
May 18 Vue.js
微信小程序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 常见郁闷问题答解
2006/11/25 PHP
php中设置多级目录session的问题
2011/08/08 PHP
PHP实现的多彩标签效果代码分享
2014/08/21 PHP
CodeIgniter记录错误日志的方法全面总结
2016/05/17 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
基于jquery的动态创建表格的插件
2011/04/05 Javascript
jQuery代码优化 选择符篇
2011/11/01 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
关于Javascript加载执行优化的研究报告
2014/12/16 Javascript
JavaScript中的setUTCDate()方法使用详解
2015/06/11 Javascript
JavaScript学习笔记之取数组中最大值和最小值
2016/03/23 Javascript
vue货币过滤器的实现方法
2017/04/01 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
小程序实现新用户判断并跳转激活的方法
2019/05/20 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
node koa2 ssr项目搭建的方法步骤
2020/12/11 Javascript
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
简单实现python数独游戏
2018/03/30 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
Django框架搭建的简易图书信息网站案例
2019/05/25 Python
python文件选择对话框的操作方法
2019/06/27 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
利用python实现冒泡排序算法实例代码
2019/12/01 Python
Tensorflow累加的实现案例
2020/02/05 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
pycharm 配置svn的图文教程(手把手教你)
2021/01/15 Python
秘书岗位职责
2013/11/18 职场文书
小加工厂管理制度
2014/01/21 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
学雷锋活动倡议书
2014/08/30 职场文书