vue。js插槽

不希望显示2遍就要在
1.在插槽里定义 slot="header"
<div class="header" slot="header">header</div>
<div class="footer" slot="footer">footer</div>
2.在slot里添加name='header'
<slot name="header"></slot>
<div class='content'>content</div>
<slot name='footer'></slot>


子组件需要在外面引入2个插入的内容,一部分的内容叫做header一部分的内容叫做footer,
而父组件调用子组件的里刚好有slot=header的插槽。




<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>vue插槽(slot)</title>
<script type="text/javascript" src="js/vue.js" ></script>
</head>
<body>
<div id="app">
<boy-content><!--//content是保留字,不可以定义为组件-->
<div class="header" slot="header">header</div><!--//插槽-->
<div class="footer" slot="footer">footer</div>
</boy-content>
</div>
<script>
Vue.component('boy-content',{

//es6的语法
// 上一个slot插件显示头部区域
// 下一个slot插件显示低部区域
//header和footer都是slot插槽里的内容,所以会显示2便
template:`<div> 



<slot name="header"></slot>
<div class='content'>content</div>

<slot name='footer'></slot>
   </div>`
})


var vm = new Vue({
el:"#app",

})
如果在父组件里没有引入slot=header 的插槽,需要
</script>
</body>
</html>














template:`<div>
<ul>
<slot v-for="item in list" :item=item></slot>
</ul>
</div>`

1.这段代码的意思是这段代码做一个列表循环,列表项中的每一项我不关心,具体怎么显示有外部组件告诉我怎么显示




<template slot-scope="props">
<h1>{{props.item}}</h1>
</template>
2.从子组件传递slot,首先在父组件里要进行 作用域插槽必须是以template组件开头结尾定义,props这个属性值可以自己定义,当子组件调用slot的时候,要传递一个item数据。


<slot v-for="item in list" :item=item></slot>是传递一个item变量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值