浅谈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 相关文章推荐
InnerHtml和InnerText的区别分析
Mar 13 Javascript
javascript 面向对象全新理练之继承与多态
Dec 03 Javascript
DWR实现模拟Google搜索效果实现原理及代码
Jan 30 Javascript
jQuery中extend()和fn.extend()方法详解
Jun 03 Javascript
javascript实现无缝上下滚动特效
Dec 16 Javascript
jquery validate表单验证插件
Sep 06 Javascript
js实现产品缩略图效果
Mar 10 Javascript
微信小程序的分类页面制作
Jun 27 Javascript
JS倒计时实例_天时分秒
Aug 22 Javascript
vue服务端渲染操作简单入门实例分析
Aug 28 Javascript
在Chrome DevTools中调试JavaScript的实现
Apr 07 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
Aug 04 Javascript
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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
PHP求最大子序列和的算法实现
2011/06/24 PHP
PHP URL路由类实例
2013/11/12 PHP
php 多继承的几种常见实现方法示例
2019/11/18 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
javascript算法学习(直接插入排序)
2011/04/12 Javascript
循环 vs 递归浅谈
2013/02/28 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
jquery实现浮动的侧栏实例
2015/06/25 Javascript
原生JavaScript实现AJAX、JSONP
2017/02/07 Javascript
jQuery实现的背景颜色渐变动画效果示例
2017/03/24 jQuery
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
对layui初始化列表的CheckBox属性详解
2019/09/13 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
jQuery实现增删改查
2020/12/22 jQuery
python中正则表达式的使用详解
2014/10/17 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
python调用staf自动化框架的方法
2018/12/26 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
学前教育专业求职信
2014/09/02 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
趣味运动会标语口号
2015/12/26 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
Java字符串逆序方法详情
2022/03/21 Java/Android