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 相关文章推荐
初学Javascript的一些总结
Nov 03 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
Jan 09 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
JavaScript模拟数组合并concat
Mar 06 Javascript
JS组件Bootstrap Table布局详解
May 27 Javascript
JavaScript实现的简单Tab点击切换功能示例
Jul 06 Javascript
vue生命周期与钩子函数简单示例
Mar 13 Javascript
TypeScript开发Node.js程序的方法
Apr 30 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
Aug 07 Javascript
微信小程序个人中心的列表控件实现代码
Apr 26 Javascript
JS前端可扩展的低代码UI框架Sunmao使用详解
Jul 23 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中的UNICODE 编码与解码
2013/06/29 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
Laravel框架分页实现方法分析
2018/06/12 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
jQuery中获取checkbox选中项等操作及注意事项
2013/11/24 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
2014/05/08 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
javascript中in运算符用法分析
2015/04/28 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
Postman模拟发送带token的请求方法
2018/03/31 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
vue router 跳转后回到顶部的实例
2018/08/31 Javascript
python实现html转ubb代码(html2ubb)
2014/07/03 Python
详解Python的Lambda函数与排序
2016/10/25 Python
python和shell获取文本内容的方法
2018/06/05 Python
Python实现微信消息防撤回功能的实例代码
2019/04/29 Python
详解python列表(list)的使用技巧及高级操作
2019/08/15 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
Linux文件操作命令都有哪些
2015/02/27 面试题
歌唱比赛获奖感言
2014/01/21 职场文书
导游实习生自荐书
2014/01/28 职场文书
人力资源经理的岗位职责范本
2014/02/28 职场文书
三人合伙协议书范本
2014/10/29 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
认真学习保证书
2015/02/26 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
mysql定时自动备份数据库的方法步骤
2021/07/07 MySQL
关于使用Redisson订阅数问题
2022/01/18 Redis
Python利用FlashText算法实现替换字符串
2022/03/31 Python