vue 具名插槽的名字可以动态绑定吗

1.子组件:
clipboard.png

2.父组件:
clipboard.png

3.描述:
我尝试在父组件里面动态绑定插槽的名字
clipboard.png

这样是不成功的,但是我想实现点击不同的标签,插入不同的内容那样的效果,请问怎么实现?
ε=(´ο`*)))

阅读 7.9k
2 个回答

楼主你好,我写了个Demo,可以实现动态绑定的呀,以下是我的Demo代码。

父组件

<template>
  <div>
    <slot_>
      <h1 :slot="name">hello world!</h1>
    </slot_>
    <button @click="change">click</button>
  </div>
</template>

<script>
import slot_ from './slot.vue'
export default {
    components: { slot_ },
    data(){
      return {
        name: '',
        status: false
      }
    },
    mounted(){
      this.name = 'h1'
    },
    methods: {
      change(){
        this.name = this.status 
          ? 'h1' : 'h2';
        this.status = !this.status;
      }
    }
}
</script>
<style>
*{margin: 0}
</style>

子组件

<template>
  <div>
      <div class="header">
          <slot name="h1"></slot>
      </div>
      <div class="footer">
          <slot name="h2"></slot>
      </div>
  </div>
</template>
<style scoped>
.header{
    background-color: pink;
    width: 200px;
    height: 60px;
}
.footer{
    width: 200px;
    height: 60px;
    background-color: green;
}
</style>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题