浅谈Vue组件及组件的注册方法


Posted in Javascript onAugust 24, 2018

相信在使用Vue进行项目开发的时候很多人会接触到vue组件,最常见的就是我们使用的element-ui组件库,用起来确实很方便,大大减少了我们的开发时间。在一个项目中其实有很多可复用的代码块,如果我们可以把这些内容封装成一个组件就能够很方便的进行各种重复使用。

那么什么是Vue组件呢?它是vue.js最强大的功能之一,是可扩展的html元素,是封装可重用的代码,同时也是Vue实例,可以接受相同的选项对象(除了一些根级特有的选项) 并提供相同的生命周期钩子。

使用组件

组件名大小写

定义组件名的方式有两种:

使用 kebab-case

Vue.component('my-component-name', { /* ... */ })

当使用 kebab-case (短横线分隔命名) 定义一个组件时,你也必须在引用这个自定义元素时使用 kebab-case,例如 <my-component-name>。

使用 PascalCase

Vue.component('MyComponentName', { /* ... */ })

当使用 PascalCase (驼峰式命名) 定义一个组件时,你在引用这个自定义元素时两种命名法都可以使用。也就是说 <my-component-name> 和 <MyComponentName> 都是可接受的。注意,尽管如此,直接在 DOM (即非字符串的模板) 中使用时只有 kebab-case 是有效的。

组件的注册分为全局注册和局部注册

全局注册

我们已经知道创建一个Vue实的方法

new Vue({
 el: '#app',
 //选项
})

注册全局组件可以使用Vue.component(tagName,options)。例如

Vue.component('my-apprvuser',{
 template:'',
 data:function(){
 return{}
 }
 //选项
})

上面是一个最简单的全局注册例子,但是实际上我们并不会这么用。以vue-cli为脚手架工具来说。我们会单独创建一个vue文件来封装一个组件。这里我们创建一个  apprvUser.vue 文件

浅谈Vue组件及组件的注册方法

该文件结构和正常的vue文件一样,里面是我们要封装的组件

然后在我们的main.js文件(也是入口文件)中注册全局组件

//注册审核人(申请)组件
import apprvUser from './views/audit/apprvUser'
Vue.component('my-apprvuser',apprvUser)

这里需要注意引用vue文件的路径不能错,这样在全局注册之后你在其他组件中就能直接使用组件<my-apprvuser></my-apprvuser>,全局注册组件就是这样了。

局部注册

局部注册就是在你想要使用的vue文件中进行注册引入。vue官网api中有一个简单的例子,大家可以看一下,但是实际过程中我们基本上都不会那样用。

还是用上述的  apprvUser.vue 文件来举例。

我是在该文件同级目录下的另一个vue文件中注册该组件的,在export default的一个选项components中进行该组件的注册。

这就是局部组件的注册,在当前文件中就可以使用该组件了,但是在其他组件中不能直接使用该组件。要在其他组件/vue文件中使用该组件必须进行全局或者局部注册。

//注册审核人(申请)组件
import apprvUser from './apprvUser'

export default {
 components: {
 'my-apprvuser':apprvUser
 },
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JQuery index()方法使用代码
Jun 02 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 Javascript
JavaScript面向对象编程入门教程
Apr 16 Javascript
js日期联动示例
May 02 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
jQuery超精致图片轮播幻灯片特效代码分享
Sep 10 Javascript
JavaScript禁止用户多次提交的两种方法
Jul 24 Javascript
基于Bootstrap仿淘宝分页控件实现代码
Nov 07 Javascript
详解Angular2响应式表单
Jun 14 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
Dec 18 jQuery
ES6知识点整理之对象解构赋值应用示例
Apr 17 Javascript
jquery登录的异步验证操作示例
May 09 jQuery
JavaScript中this关键字用法实例分析
Aug 24 #Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 #Javascript
JavaScript原型链与继承操作实例总结
Aug 24 #Javascript
element-ui循环显示radio控件信息的方法
Aug 24 #Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
Aug 24 #Javascript
解决vue2.0 element-ui中el-upload的before-upload方法返回false时submit()不生效问题
Aug 24 #Javascript
AngularJS自定义表单验证功能实例详解
Aug 24 #Javascript
You might like
PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
php 生成短网址原理及代码
2014/01/23 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
分享20多个很棒的jQuery 文件上传插件或教程
2011/09/04 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
Angular5中调用第三方js插件的方法
2018/02/26 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
Vue两种组件类型:递归组件和动态组件的用法
2020/08/06 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
python随机生成指定长度密码的方法
2015/04/04 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
对Python使用mfcc的两种方式详解
2019/01/09 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
python批量检查两个对应的txt文件的行数是否一致的实例代码
2020/10/31 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
军训 自我鉴定
2014/02/03 职场文书
顶碗少年教学反思
2014/02/21 职场文书
英文演讲稿开场白
2014/08/25 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
民事代理词范文
2015/05/25 职场文书
2016年中秋节寄语大全
2015/12/07 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
2016年法制宣传月活动总结
2016/04/01 职场文书
深入理解python协程
2021/06/15 Python
redis的list数据类型相关命令介绍及使用
2022/01/18 Redis
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python
Python使用openpyxl模块处理Excel文件
2022/06/05 Python
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python