Vue v-slot插槽 (vue-cli)

App.vue

<template>
  <div id="app">
    <!-- slot已过时
     <A>
      <div slot="a">
        <h2>{{msg1}}</h2>
      </div>
      <div slot="b">
        <h2>{{msg2}}</h2>
      </div>
    </A>-->
    <A>
      <!-- 
        1.这里的v-slot后面的值a,b可以随便取,子组件slot中的name要对应该值。
        2.还有msg1和msg2只能由当前的App.vue提供,不能由A.vue提供
        3.在template外写其他东西,是不会显示的。
      -->
      <template v-slot:a>
        <h2>{{msg1}}</h2>
      </template>
      <!-- 添加scope后,子组件可以传值向父组件传值 -->
      <template v-slot:b="scope">
        <h2>{{msg2}}</h2>
        <h2>{{scope.msg33}}</h2>
      </template>
    </A>
  </div>
</template>

<script>
import A from "./components/A";

export default {
  name: "app",
  components: {
    A
  },
  data() {
    return {
      msg1: "23333",
      msg2: "666666"
    };
  }
};
</script>
<style scoped>
/* 关与CSS样式,虽然父组件和子组件都可以设置样式,同时设置,父组件会覆盖子组件的样式。看具体的情况设置样式。 */
h2 {
  background: #30b031;
}
</style>

A.vue

<template>
  <div class="a">
    <slot name="a" />
    <h1>Hello Vue</h1>
    <!-- 这里的msg33名字随意取 -->
    <slot name="b" :msg33="msg3" />
  </div>
</template>
<style scoped>
h2 {
  background: #f5c700;
}
</style>

效果:


v-slot插槽.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • UI组件 element - 饿了么出品的Vue2的web UI工具套件 Vux - 基于Vue和WeUI的组件库...
    卞卞村长L阅读 5,766评论 0 8
  • 深入响应式 追踪变化: 把普通js对象传给Vue实例的data选项,Vue将使用Object.defineProp...
    冥冥2017阅读 10,314评论 6 16
  • UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 m...
    你猜_3214阅读 13,843评论 0 118
  • UI组件 element- 饿了么出品的Vue2的web UI工具套件 Vux- 基于Vue和WeUI的组件库 m...
    王喂马_阅读 11,543评论 1 77
  • 从第148页到第159页 好词:开始、提琴、短信、心情、应该、生病、住院、鼻子、味道、刺耳、玻璃、墙角、发呆、院子...
    四班丁川阅读 1,661评论 0 0

友情链接更多精彩内容