Vue在插槽slot时报错:Component template should contain exactly one root element. If you are using v-ifen

Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead

插槽使用报错。

google translation:
组件模板应仅包含一个根元素。 如果要在多个元素上使用v-if,请改为使用v-else-if链接它们。

解决办法:

普通的模板解决方法:

在模板最外面加一个div来包含模板(组件模板应仅包含一个根元素)

带插槽的模板解决方法:

加slot属性和name属性:(不加name会出现多次遍历结果)

html:
 <todo-slot>
        <!--       v-on@==========v-bind:-->
        <todo-p slot="todo-p" :tittle="tittle"></todo-p>
        <todo-li slot="todo-li" v-for="item in items" :item="item"></todo-li>
    </todo-slot>
template:
 Vue.component("todo-slot", {

        // 模板,插ul
        template: '<div><p><slot name="todo-p"></slot></p>' +
            '<ul>' +
            '<slot name="todo-li"></slot>' +
            '</ul></div>'
    });

初学Vue,感觉还是比较简单。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值