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 each()嵌套使用小结
Apr 18 Javascript
ExtJS4如何给同一个formpanel不同的url
May 02 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
Jul 20 Javascript
纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示
Sep 12 Javascript
Bootstrap零基础入门教程(三)
Jul 18 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
Dec 04 Javascript
微信小程序 基础知识css样式media标签
Feb 15 Javascript
vue2.0中click点击当前li实现动态切换class
Jun 21 Javascript
4个顶级JavaScript高级文本编辑器
Oct 10 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
Jul 11 Javascript
微信小程序实现电子签名并导出图片
May 27 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制作的意见反馈表源码
2007/03/11 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php rsa加密解密使用详解
2015/01/14 PHP
实用javaScript技术-屏蔽类
2006/08/15 Javascript
获取Javscript执行函数名称的方法
2006/12/22 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
2017/12/14 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python通过get,post方式发送http请求和接收http响应的方法
2015/05/26 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
python itchat实现微信自动回复的示例代码
2017/08/14 Python
pandas 透视表中文字段排序方法
2018/11/16 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Python 实现文件读写、坐标寻址、查找替换功能
2019/09/11 Python
使用Python将语音转换为文本的方法
2020/08/10 Python
Python 高效编程技巧分享
2020/09/10 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
html5 横向滑动导航栏的方法示例
2020/05/08 HTML / CSS
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
安全生产检讨书
2014/01/21 职场文书
促销活动方案模板
2014/02/24 职场文书
师德师风个人反思
2014/04/28 职场文书
森林防火标语
2014/06/23 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
三八节活动主持词
2015/07/04 职场文书
学生会招新宣传语
2015/07/13 职场文书
JS 4个超级实用的小技巧 提升开发效率
2021/10/05 Javascript