vue组件之slot插槽

关键词:slot

说明

为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板。这个过程被称为 **内容分发 **Vue.js 实现了一个内容分发 API ,参照了当前 Web 组件规范草案,使用特殊的 <slot> 元素作为原始内容的插槽。


数据

    var vm = new Vue({
        el:"#box",
        data:{
            a:'秋风吹渭水',
            b:'落叶满长安',
            han:['思君令人老','岁月忽已晚','弃捐勿复道','努力加餐饭']
        },
        components:{
            "m-poem":{
                template:"#poem"
            }
        }
    })

模板


<template id="poem">
 <div> 
    <h1>汉乐府</h1>
    <slot>无名氏</slot>
    <slot name="ul-slot">待添加...</slot>
    <slot name="ol-slot">古诗十九首</slot>
    <slot></slot>
 </div> 
</template>

视图

    <div id="box">
        <m-poem>
        <p>{{b}}</p>
            <ol slot="ol-slot">
            <li v-for="item in han" v-text="item"></li >
            </ol>
            <p>{{a}}</p>
        </m-poem>
        <m-poem>
        </m-poem>
    </div>

slot插槽可不可以插入组件呢,我试了一下,也是可以的

<template id="title">
  <div>
    <h1>风景</h1>
    <p>洛阳城里花如雪</p>
    <p>洛阳花开动京城</p>  
  </div>
</template>

<script>
    Vue.component('m-title', {
     template:'#title'

  });
<div id="box">
        <m-poem>
        <m-title></m-title>
        </m-poem>
</div>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 此文基于官方文档,里面部分例子有改动,加上了一些自己的理解 什么是组件? 组件(Component)是 Vue.j...
    陆志均阅读 9,245评论 5 14
  • 什么是组件 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用...
    angelwgh阅读 4,125评论 0 0
  • 9.1 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,...
    白水螺丝阅读 4,223评论 0 2
  • 好久没下过厨了,今天特意下厨,那么今天就来写一下做汤。大家好,事不宜迟,今天来为大家介绍的一道汤是...........
    12月32号阅读 1,690评论 6 6
  • 说服别人的一个最好方法是用你的耳朵——听听他们在讲什么 孩子回到家就开始玩游戏、或是小小年纪却已经开始谈恋爱等等,...
    肆意木阅读 4,487评论 0 0