浅谈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 相关文章推荐
一些相见恨晚的 JavaScript 技巧
Apr 25 Javascript
JSONP 跨域共享信息
Aug 16 Javascript
Js,alert出现乱码问题的解决方法
Jun 19 Javascript
JavaScript中Math对象方法使用概述
Jan 02 Javascript
JavaScript 获取任一float型小数点后两位的小数
Jun 30 Javascript
用console.table()调试javascript
Sep 04 Javascript
jQuery Layer弹出层传值到父页面的实现代码
Aug 17 jQuery
Swiper自定义分页器使用详解
Dec 28 Javascript
babel的使用及安装配置教程
Feb 22 Javascript
vue总线机制(bus)知识点详解
May 10 Javascript
浅谈JS的原型和原型链
Jun 04 Javascript
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
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数据类型判断函数有哪些
2013/09/23 PHP
php无限极分类实现方法分析
2019/07/04 PHP
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
js onclick事件传参讲解
2013/11/06 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
2016/07/28 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
iscroll动态加载数据完美解决方法
2017/07/18 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
2017/11/17 Javascript
vue-router之nuxt动态路由设置的两种方法小结
2018/09/26 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
python计算N天之后日期的方法
2015/03/31 Python
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
深入解析Python中的WSGI接口
2015/05/11 Python
python直接访问私有属性的简单方法
2016/07/25 Python
python实现单向链表详解
2018/02/08 Python
Python魔法方法功能与用法简介
2019/04/04 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
numpy中生成随机数的几种常用函数(小结)
2020/08/18 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
会计专业的自荐信
2013/12/12 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
21岁生日感言
2014/02/27 职场文书
土地转让协议书范本
2014/04/15 职场文书
保护环境倡议书范文
2014/05/13 职场文书
Java 超详细讲解十大排序算法面试无忧
2022/04/08 Java/Android