<!DOCTYPE html>
<html>
<head>
<title>vue插槽</title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="app">
<child>
{% comment %} 此时里面的内容都传入slot-scope {% endcomment %}
<template slot-scope="props">
<li>{{props.item}}</li>
</template>
<slot></slot>
</child>
<slot></slot>
</div>
</body>
<script type="text/javascript">
Vue.component('child',{
data:function(){
return{
list:[1,2,3,4]
}
},
template:'<div><slot v-for="item of list" :item=item></slot></div>'
})
vm = new Vue({
el:'#app',
data:{
}
})
</script>
</html>
在子组件的插槽定义,使用v-bind进行绑定传值,并且对于插槽的传值使用如下方式,必须是template标签
<template slot-scope="props">
<li>{{props.item}}</li>
</template>
<template slot="girl">
那颗
</template>
</child>
<script type="text/javascript">
Vue.component('child',{
template:'<div><h4><slot name="girl"></slot></h4><h1><slot name="python">技术</slot></h1></div>'
})
这种方式也能实现插槽的效果,在子组件定义这个名字