Vue中自定义全局组件的实现方法


Posted in Javascript onDecember 08, 2017

前言

有时候我们在做开发的时候,就想自己写一个插件然后就可以使用自己的插件,那种成就感很强。今天就解决了一个长期困扰着我的问题,现在记录一下,供日后参考。

涉及知识点是Vue.js官网教程中的插件使用

方法如下:

首先我遇到的问题就是我自定义的组件如果需要在项目中其他组件中多次被调用,而我之前的解决方法就是简单的,哪里需要在哪引用。这无疑增加了许多代码重复。

而在使用Vue.js的一些UI框架的时候则注意到,只需要在项目的入口文件中import这个插件然后在接着Vue.use(‘插件名')。这样就能在整个项目里面使用这个框架中的组件以及方法了。

查阅资料后发现,自定义的组件需要提供一个install方法

import sideblockComponent from './sideBlock'
const defaultComponentName = 'sidebar'

const Sidebar = {
 install(Vue, options = {}) {
 const componentName = options.componentName || defaultComponentName //提供可选的组件名
 Vue.component(componentName, sideblockComponent)
 }
}
export default Sidebar

像这样 引入自己编写好的组件,然后创建一个对象,并包含一个install方法,并使用Vue.component()方法注册成Vue全局组件,最后export default导出这个对象。

到此最关键的步骤已经做好,接下来是最最关键的步骤。

我们需要在项目的入口文件中引入刚刚做好的组件,并且通过Vue.use(引入的组件)来使用插件。

到此,一个全局Vue组件就弄好了。我们在提供install方法的同时也可以通过Vue.$emit()的方法来触发组件中的方法,但最近在使用Element UI时发现他们组件中的方法一般都是通过Vue.$refs()来触发的。具体原因留到日后再做研究。

vue $refs的基本用法

<div id="app">
<input type="text" ref="input1"/>
<button @click="add">添加</button>
</div>
<script>
new Vue({
  el: "#app",
  methods:{
  add:function(){
    this.$refs.input1.value ="22"; //this.$refs.input1 减少获取dom节点的消耗
    }
  }
})
</script>

一般来讲,获取DOM元素,需document.querySelector(".input1")获取这个dom节点,然后在获取input1的值。

但是用ref绑定之后,我们就不需要在获取dom节点了,直接在上面的input上绑定input1,然后$refs里面调用就行。

然后在javascript里面这样调用:this.$refs.input1 这样就可以减少获取dom节点的消耗了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JavaScript聚焦于第一个字段的代码
Oct 15 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
Feb 25 Javascript
JavaScript获取网页表单action属性的方法
Apr 02 Javascript
JS插件plupload.js实现多图上传并显示进度条
Nov 29 Javascript
详解JavaScript常量定义
Jan 03 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
Dec 15 Javascript
ES6 fetch函数与后台交互实现
Nov 14 Javascript
微信公众平台获取access_token的方法步骤
Mar 29 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
Jun 28 Javascript
微信小程序网络请求实现过程解析
Nov 06 Javascript
js实现简单五子棋游戏
May 28 Javascript
如何编写一个 Webpack Loader的实现
Oct 18 Javascript
Vue中的Vux配置指南
Dec 08 #Javascript
利用10行js代码实现上下滚动公告效果
Dec 08 #Javascript
vue axios 二次封装的示例代码
Dec 08 #Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
Dec 08 #Javascript
js断点调试心得分享(必看篇)
Dec 08 #Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
Dec 08 #Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
Dec 08 #Javascript
You might like
php中的时间显示
2007/01/18 PHP
轻松修复Discuz!数据库
2008/05/03 PHP
PHP 全角转半角实现代码
2010/05/16 PHP
php flv视频时间获取函数
2010/06/29 PHP
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
php中简单的对称加密算法实现
2017/01/05 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
javascript中的prototype属性实例分析说明
2010/08/09 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
js游戏人物上下左右跑步效果代码分享
2015/08/28 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
JS输出空格的简单实现方法
2016/09/08 Javascript
基于Bootstrap漂亮简洁的CSS3价格表(附源码下载)
2017/02/28 Javascript
JS简单生成由字母数字组合随机字符串示例
2018/05/25 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
JavaScript实现简单验证码
2020/08/24 Javascript
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
Python爬虫爬取电影票房数据及图表展示操作示例
2020/03/27 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
python list的index()和find()的实现
2020/11/16 Python
python操作toml文件的示例代码
2020/11/27 Python
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
美国眼镜在线零售商:Dualens
2019/12/07 全球购物
NET程序员上机面试题
2015/05/23 面试题
党校培训自我鉴定
2014/02/01 职场文书
2014婚礼司仪主持词
2014/03/14 职场文书
市场营销毕业求职信
2014/08/07 职场文书
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python