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 相关文章推荐
jQuery 中使用JSON的实现代码
Dec 01 Javascript
javascript窗口宽高,鼠标位置,滚动高度(详细解析)
Nov 18 Javascript
JavaScript生成随机数的4种自定义函数分享
Feb 28 Javascript
Node.js和MongoDB实现简单日志分析系统
Apr 25 Javascript
jquery结合html实现中英文页面切换
Nov 29 Javascript
Vue2.x中的父组件传递数据至子组件的方法
May 01 Javascript
JS判断非空至少输入两个字符的简单实现方法
Jun 23 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
Angular模版驱动表单的使用总结
May 05 Javascript
基于Bootstrap下拉框插件bootstrap-select使用方法详解
Aug 07 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
jquery实现聊天机器人
Feb 08 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
php 高性能书写
2010/12/11 PHP
PHP下通过file_get_contents的代理使用方法
2011/02/16 PHP
php通过session防url攻击方法
2014/12/10 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
jquery 最简单的属性菜单
2009/10/08 Javascript
JQuery datepicker 使用方法
2011/05/20 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
JavaScript数组随机排列实现随机洗牌功能
2015/03/19 Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
2016/02/02 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
简单实现jQuery上传图片显示预览功能
2020/06/29 jQuery
详谈Node.js之操作文件系统
2017/08/29 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
使用Vue-cli 3.0搭建Vue项目的方法
2018/06/07 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
python实现哈希表
2014/02/07 Python
python编写简单爬虫资料汇总
2016/03/22 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python SocketServer源码深入解读
2019/09/17 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
简述python&amp;pytorch 随机种子的实现
2020/10/07 Python
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
手工制作的意大利皮革运动鞋:KOIO
2020/01/05 全球购物
物业总经理岗位职责
2014/02/28 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
食堂管理制度范本
2015/08/04 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js