vue 学习七 组件上使用插槽

我们有时候可能会在组件上添加元素,就像下面那样

<template>
  <div id="a">
    <com1>
      <p>我是渲染的值</p>  //直接在组件闭合内添加元素
    </com1>
  </div>
</template>

<script>
import com1 from "./b_router";
export default {
  name: "a_router",
  components: {
    com1
  },
  data() {
    return {
      test: "123"
    };
  },
  methods:{

  }
};
</script>

 

但是最终的渲染结果却是这样

幸好,Vue 自定义的 <slot> 元素让这变得非常简单。只需要在com组件中定义

<template>
  <div id="b">
    <h1>b_router</h1>
    <slot></slot> //添加一个slot元素
  </div>
</template>

<script>
export default {
  name: "b_router",
  data() {
    return {
        val:null
    };
  },
};
</script>

然后就可以了

slot标签在这里的作用就是将<com></com> 标签之间的代码添加进入slot中,我们可以像是用普通标签<div>一样使用,包括在其中添加一个组件、

<template>
  <div id="a">
    <com1>
       <com2></com2>//我是放入slot中的第二个组件
<com1><com1/> //也可以将com1 放入com1中
</com1> </div> </template>

 

posted @ 2019-10-21 10:13  眼里有激光  阅读(402)  评论(0编辑  收藏  举报