Vue组件应用构建

Vue中,一个组件本质上是一个拥有预定义选项的一个Vue实例。
在Vue中注册组件

//定义名为todo-item的新组件
Vue.component('todo-item',{
template: '<li>这是个代办项</li>'
})
var app = new Vue(...)

现在可以用它构建另一个组件模版

<ol>
	//创建一个todo-item组件的实例
	<todo-item></todo-item>
</ol>

上面的缺点:会会每个代办项渲染同样的文本。
我们应该从父作用域将数据传到子组件才对。
需要修改一下组件的定义,使之接受一个prop:

Vue.component('todo-item',{
//todo-list组件现在接受一个“prop”,类似与一个自定义attribute。
//这个prop名为 todo
props:['todo'],
template: '<li>{{ todo.text }}</li>
})

现在可以使用v-bind指令将待办项传到循环输出的每个组件中。

<div id="app-7">
	<ol>
	<todo-item v-for="item in groceryList"
	 v-bind:todo="item" 
	 v-bind:key="item.id">
	</todo-item>
	</ol>
</div>
Vue.component('todo-item',{
	props:['todo'],
	template: '<li>{{ todo.text }}</li>'
})

var app7 = new Vue({
	el:'#app-7',
	data:{
	groceryList:[
	{id: 0, text:'apple'},
	{id: 1, text:'pear'},
	{id: 2, text:'orange'}
]
}	
})

子组件通过prop接口和父组件进行了良好的结偶。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值