小编有话说:
如果你还不知道什么是插槽的话,建议你先看看这个 插槽
好了,下面小编就来聊聊我理解的作用域 插槽
作用域插槽 格式:必须是下面的这个种 template中
<template slot-scope="props">
<h1>{{props.item}}</h1>
</template>
其中有 slot-scope="props"
slot-scope:代表子组件要传过来的值的一个接受,可以视为一个集合,接受来自子组件绑定的 :item=item
props:名字随便起,看作一个变量名
props.item:取出传的值
这样的好处:
只要在子组件中写好要传的数据,至于是什么格式不用管,交给引用去做,好比发了工资买啥随我们的便
作用域插槽的Demo
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 中的作用域插槽</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
</head>
<body>
<div id="root">
<child>
<!--
作用域插槽 格式:必须是下面的这个种 template中
<template slot-scope="props">
<h1>{{props.item}}</h1>
</template>
其中有 slot-scope="props"
slot-scope:代表子组件要传过来的值的一个接受,可以视为一个集合,接受来自子组件绑定的 :item=item
props:名字随便起,看作一个变量名
props.item:取出传的值
这样的好处:
只要在子组件中写好要传的数据,至于是什么格式不用管,交给引用去做,好比发了工资买啥随我们的便
-->
<template slot-scope="props">
<h1>{{props.item}} - Hello</h1>
</template>
</child>
</div>
<script type="text/javascript">
Vue.component('child',{
data:function () {
return{
list:[1,2,3,4,5]
}
},
template:`<div> <ul> <slot v-for="item of list" :item=item>{{item}}</slot> </ul> </div>`
});
var vm = new Vue({
el:'#root'
});
</script>
</body>
</html>