vue组件的写法汇总


Posted in Javascript onApril 12, 2018

数据驱动和组件化是vue.js两个最重要的特点。组件化是为了方便代码复用,提高开发效率。常见的vue组件写法有四种,各有特色,适用于不同的场景。

1、全局组件

结构:

// 组件的注册 
Vue.component( 'componentName', { 
 template: // 组件的html结构, 
 data(){ 
 return{ 
  // 组件中的属性 
 } 
 }, 
 method: { 
 // 组件中的方法 
 } 
 ...... // 组件其他的属性和方法 
}) 
// 组件的使用 
new Vue({ 
 el: '#app' 
})

在script标签内通过Vue.component()定义一个全局组件,并通过new Vue()实例将组件应用到html文件中id为app的标签内。

特点:

<1>可以直接在html文件中的script标签内直接定义与使用;

<2>通过该方法定义的组件是全局组件,在任何Vue实例下都可以使用,适合项目比较简单的场景;

<3>每次定义组件时都要重新使用Vue.component(),且组件名不能相同;

实例:

Welcome组件

2、局部组件

结构:

// 构造组件对象 
const componentName = { 
 template: // 组件的html结构, 
 data(){ 
 return{ 
  // 组件中的属性 
 } 
 }, 
 method: { 
 // 组件中的方法 
 } 
 ...... // 组件其他的属性和方法 
} 
// 组件的使用 
new Vue({ 
 el: '#app', 
 components: { 
 // 组件注册、调用 
 componentName 
 } 
})

在script标签中通过定义一个组件对象,并通过Vue实例中components属性将该组件注册调用。

特点:

<1>与全局方式定义的组件相似,都可以直接在html文件中的script标签中直接书写组件与使用;

<2>只有在注册过的Vue实例中才能使用该组件;

实例:

Welcome组件

3、使用template标签

结构:

<template id="componnet"> 
 // 组件的html结构 
</template> 
// 全局组件的注册与使用 
Vue.component( 'componentName', { 
 template: '#component', 
 data(){ 
 return{ 
  // 组件中的属性 
 } 
 }, 
 method: { 
 // 组件中的方法 
 } 
 ...... // 组件其他的属性和方法 
}) 
new Vue({ 
 el: '#app' 
}) 
// 局部组件的注册与使用 
const componentName = { 
 template: '#component', 
 data(){ 
 return{ 
  // 组件中的属性 
 } 
 }, 
 method: { 
 // 组件中的方法 
 } 
 ...... // 组件其他的属性和方法 
} 
new Vue({ 
 el: '#app', 
 components: { 
 // 组件注册、调用 
 componentName 
 } 
})

使用template标签将组件中的html结构写在body标签内部,在script标签内按照全局组件和局部组件的方式注册与使用。不同之处在于组件中template属性是通过id引用。

特点:

<1>js文件中不包含html结构内容,实现结构与逻辑分离;

实例:

Welcome组件

4、单文件组件

结构:

<template lang="html"> 
 // 组件中的html结构 
</template> 
<script> 
 //组件的逻辑 
 export default { 
 // 组件的属性和方法 
 } 
</script> 
<style lang="css" scoped> 
 // 组件的样式 
</style>

创建一个尾缀为vue的文件,文件名即为组件名。组件内包含三部分内容:html结构、js逻辑、css样式,分别对应于不同的标签。使用时组件时,通过import引入即可使用。

特点:

<1>组件与组件之间互不影响,复用性高,其html、css、js均可复用;

<2>组件的结构、逻辑清晰;

<3>适用于大型复杂项目,适合多人开发;

实例:

Welcome组件

!!!需要注意的是:template标签内必须用一个标签将所有的标签包裹,否则会报错

正确的写法:

<template> 
 <div> 
 <div></div> 
 ...... 
 <div></div> 
 </div> 
</template>

错误的写法:

<template> 
 <div></div> 
 <div></div> 
 ...... 
 <div></div> 
</template>

总结

以上所述是小编给大家介绍的vue组件的写法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js Flash插入函数免激活代码
Mar 31 Javascript
利用函数的惰性载入提高javascript代码执行效率
May 05 Javascript
js使用cookie记录用户名的方法
Nov 26 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
Dec 31 Javascript
js 获取当前web应用的上下文路径实现方法
Aug 19 Javascript
Bootstrap CSS组件之大屏幕展播
Dec 17 Javascript
JavaScript使用indexOf()实现数组去重的方法分析
Sep 04 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
浅谈javascript错误处理
Aug 11 Javascript
微信小程序实现点击按钮后修改颜色
Dec 05 Javascript
js实现倒计时秒杀效果
Mar 25 Javascript
jQuery实现html可联动的百分比进度条
Mar 26 jQuery
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 #jQuery
基于vue-simplemde实现图片拖拽、粘贴功能
Apr 12 #Javascript
基于angular6.0实现的一个组件懒加载功能示例
Apr 12 #Javascript
JavaScript实现简单的文本逐字打印效果示例
Apr 12 #Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
Apr 12 #jQuery
Koa项目搭建过程详细记录
Apr 12 #Javascript
React props和state属性的具体使用方法
Apr 12 #Javascript
You might like
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
js下拉菜单语言选项简单实现
2013/09/23 Javascript
jquery分页对象使用示例
2014/04/01 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
使用webpack编译es6代码的方法步骤
2019/04/28 Javascript
jquery ajax 请求小技巧实例分析
2019/11/11 jQuery
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
python通过smpt发送邮件的方法
2015/04/30 Python
Python XlsxWriter模块Chart类用法实例分析
2019/03/11 Python
python随机模块random使用方法详解
2020/02/14 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
Julep官网:美容产品和指甲油
2017/02/25 全球购物
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
英国领先的高级美容和在线皮肤诊所:Face the Future
2020/06/17 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
什么是组件架构
2016/05/15 面试题
学校七一活动方案
2014/01/19 职场文书
淘宝店铺营销方案
2014/02/13 职场文书
先进个人总结范文
2015/02/15 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python