11.组件插槽-具名插槽-作用域插槽

组件插槽

  • 一、具名插槽
  • 二、作用域插槽(slot-scope)

一、具名插槽

组件插槽的作用:父组件向子组件传递内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
    <layout-item>
        <template>//不显示的标签
            <h1 slot="header">我是标题</h1>
        </template>
        <p>我是内容</p>//匹配没有命名的slot
        <span slot="footer">我是底部</span>
    </layout-item>
</div>
<script src="../node_modules/vue/dist/vue.js"></script>
<script>
    Vue.component('layout-item',{
        template:`
			
`
}) const vm =new Vue({ el:'#app' }) </script> </body> </html>

实现效果:
11.组件插槽-具名插槽-作用域插槽_第1张图片

二、作用域插槽(slot-scope)

应用场景:父组件对子组件的内容进行加工处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .current{
            color: #42b983;
        }
    </style>
</head>
<body>
<div id="app">
    <layout-item :fruitlist="list" >
        <template slot-scope="fruitProps">
            <h1 v-if='fruitProps.info.id==2' class="current">{{fruitProps.info.name}}</h1>
            <span v-else>{{fruitProps.info.name}}</span>
        </template>
    </layout-item>
</div>
<script src="../node_modules/vue/dist/vue.js"></script>
<script>
    Vue.component('layout-item',{
        props:['fruitlist'],
        template:`
        
  • {{item.name}}
`
}); const vm = new Vue({ el:'#app', data:{ list:[ {id:1,name:'apple'}, {id:2,name:'orange'}, {id:3,name:'banana'} ] } }) </script> </body> </html>

你可能感兴趣的:(vue专栏)