VUE学习笔记 1.Slot分发内容 之 作用域插槽

<!DOCTYPE html >
< html lang= "en" >
< head >
< meta charset= "UTF-8" >
< title >Vue作用域插槽 </ title >
< script src= "https://cdn.bootcss.com/vue/2.3.4/vue.js" > < / script >
</ head >
< body >
< div id= "app2" >
<!-- 组件使用者只需传递users数据即可 -->
< my-stripe-list : items= "users" odd-bgcolor= "#D3DCE6" even-bgcolor= "#E5E9F2" >
<!-- props对象接收来自子组件slot的$index参数 -->
< template slot= "cont" scope= "props" >
< span >{{users[props.$index].id}} </ span >
< span >{{users[props.$index].name}} </ span >
< span >{{users[props.$index].age}} </ span >
<!-- 这里可以自定[编辑][删除]按钮的链接和样式 -->
< a : href= "'#edit/id/'+users[props.$index].id" >编辑 </ a >
< a : href= "'#del/id/'+users[props.$index].id" >删除 </ a >
</ template >
</ my-stripe-list >
</ div >
< script >
Vue. component( 'my-stripe-list', {
/*slot的$index可以传递到父组件中*/
template: `
<div>
<div v-for="(item, index) in items" style="line-height:2.2;" :style="index % 2 === 0 ? 'background:'+oddBgcolor : 'background:'+evenBgcolor">
<slot name="cont" :$index="index"></slot>
</div>
</div>
`,
props: {
items: Array,
oddBgcolor: String,
evenBgcolor: String
}
});
new Vue({
el: '#app2',
data: {
users: [
{ id: 1, name: '张三', age: 20},
{ id: 2, name: '李四', age: 22},
{ id: 3, name: '王五', age: 27},
{ id: 4, name: '张龙', age: 27},
{ id: 5, name: '赵虎', age: 27}
]
});
< / script >
</ body >
</ html >
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值