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 相关文章推荐
简明json介绍
Sep 28 Javascript
JQuery 常用方法基础教程
Feb 06 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
Jun 11 Javascript
JavaScript中变量提升 Hoisting
Jul 03 Javascript
JS保留两位小数,多位小数的示例代码
Jan 07 Javascript
javascript正则表达式使用replace()替换手机号的方法
Jan 19 Javascript
jQuery实现广告条滚动效果
Aug 22 jQuery
vue-cli的eslint相关用法
Sep 29 Javascript
vue解决跨域路由冲突问题思路解析
Nov 03 Javascript
JS调用安卓手机摄像头扫描二维码
Oct 16 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 Javascript
详解JS数组方法
Nov 20 Javascript
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
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
Yii输入正确验证码却验证失败的解决方法
2017/06/06 PHP
javascript 禁止复制网页
2009/06/11 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
Angular中的$watch方法详解
2017/09/18 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
JS控制只能输入数字并且最多允许小数点两位
2019/11/24 Javascript
python使用scrapy解析js示例
2014/01/23 Python
Python-基础-入门 简介
2014/08/09 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
python搭建虚拟环境的步骤详解
2016/09/27 Python
Python简单网络编程示例【客户端与服务端】
2017/05/26 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
python批量修改图片尺寸,并保存指定路径的实现方法
2019/07/04 Python
Python 列表的清空方式
2020/01/13 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
深入浅析python 中的self和cls的区别
2020/06/20 Python
Hanky Panky官方网站:内衣和睡衣
2019/07/25 全球购物
护理专业自荐信
2013/12/03 职场文书
2014自荐信的写作技巧
2014/01/28 职场文书
公司门卫的岗位职责
2014/02/19 职场文书
小学优秀班主任事迹材料
2014/05/17 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
师范生见习总结范文
2015/06/23 职场文书
python 如何用map()函数创建多线程任务
2021/04/07 Python
Redis之RedisTemplate配置方式(序列和反序列化)
2022/03/13 Redis
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js