vue component组件使用方法详解


Posted in Javascript onJuly 14, 2017

什么是组件

按照惯例,引用Vue官网的一句话:

组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用的代码。在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能。在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展。 

组件component的注册

全局组件:

Vue.component('todo-item',{
  props:['grocery'],
  template:'<li>{{grocery.text}}</li>'
})
var app7 = new Vue({
  el:"#app7",
  data:{
    groceryList:[
      {"id":0,"text":"蔬菜"},
      {"id":1,"text":"奶酪"},
      {"id":2,"text":"其他"}
    ]
  }
})
<div id="app7">
  <ol>
    <todo-item
      v-for="grocery in groceryList"
      v-bind:grocery="grocery"
      v-bind:key="grocery.id">
    </todo-item>
  </ol>
</div>

局部注册:

var Child = {
 template: '<div>A custom component!</div>'
}
new Vue({
 // ...
 components: {
  // <my-component> 将只在父模板可用
  'my-component': Child
 }
})

DOM模板解析说明

组件在某些HTML标签下会受到一些限制。
比如一下代码,在table标签下,组件是无效的。

<table>
 <my-row>...</my-row>
</table>

解决方法是,通过is属性使用组件

<table>
 <tr is="my-row"></tr>
</table>

应当注意,如果您使用来自以下来源之一的字符串模板,将不会受限

<script type="text/x-template">

JavaScript 内联模版字符串

.vue 组件

data使用函数,避免多组件互相影响

html

<div id="example-2">
 <simple-counter></simple-counter>
 <simple-counter></simple-counter>
 <simple-counter></simple-counter>
</div>

js

var data = { counter: 0 }
Vue.component('simple-counter', {
 template: '<button v-on:click="counter += 1">{{ counter }}</button>',
 data: function () {
  return data
 }
})
new Vue({
 el: '#example-2'
})

如上,div下有三个组件,每个组件共享一个counter。当任意一个组件被点击,所有组件的counter都会加一。

解决办法如下

js

Vue.component('simple-counter', {
 template: '<button v-on:click="counter += 1">{{ counter }}</button>',
 data: function () {
  return {counter:0}
 }
})
new Vue({
 el: '#example-2'
})

这样每个组件生成后,都会有自己独享的counter。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
firefox下input type=&quot;file&quot;的size是多大
Oct 24 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
Aug 15 Javascript
js禁止页面刷新与后退的方法
Jun 08 Javascript
关于cookie的初识和运用(js和jq)
Apr 07 Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 Javascript
JS中使用正则表达式g模式和非g模式的区别
Apr 01 Javascript
不使用 JS 匿名函数理由
Nov 17 Javascript
jQuery事件多次绑定与解绑问题实例分析
Feb 19 jQuery
layui数据表格实现重载数据表格功能(搜索功能)
Jul 27 Javascript
Vue.js实现立体计算器
Feb 22 Javascript
vue @ ~ 相对路径 路径别名设置方式
Jun 05 Vue.js
vue-cli单页应用改成多页应用配置详解
Jul 14 #Javascript
Vue filters过滤器的使用方法
Jul 14 #Javascript
vue.js如何更改默认端口号8080为指定端口的方法
Jul 14 #Javascript
Vue computed计算属性的使用方法
Jul 14 #Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 #Javascript
JS实现数组去重方法总结(六种方法)
Jul 14 #Javascript
Javascript中Promise的四种常用方法总结
Jul 14 #Javascript
You might like
PHP读取目录下所有文件的代码
2008/01/07 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
php下清空字符串中的HTML标签的代码
2010/09/06 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
php使用session二维数组实例
2014/11/06 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
ThinkPHP删除栏目(实现批量删除栏目)
2017/06/21 PHP
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
javascript中call,apply,bind的用法对比分析
2015/02/12 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
BooStrap对导航条的改造实践小结
2016/09/21 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
一步步教你利用Canvas对图片进行处理
2017/09/19 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python的动态重新封装的教程
2015/04/11 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
python selenium 获取接口数据的实现
2020/12/07 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
个人对照检查材料
2014/02/12 职场文书
网络技术专业推荐信
2014/02/20 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS