vue框架中特殊的attribute属性:is的使用

:is属性

根据HTML规范,table、ul、ol、select等元素标签只能包含特定元素,当模板标签在使用有限制性的元素,在渲染时就会出现bug。如下例所示:

    <div id="root">
        <table>
            <tbody>
            <row></row>
            <row></row>
            <row></row>
            </tbody>
        </table>
    </div>
    <script>
        Vue.component('row',{
            template: '<tr><td>this is a row</td></tr>'
        })
        var vm=new Vue({
            el: "#root"
        })
    </script>

渲染结果如下:

在这里插入图片描述
渲染完成后,tr元素放在了table元素的外部。因为tbody元素内部只能放tr标签,上例在table标签内部写了row标签就会引发bug。引入is属性后上例中DOM部分可以这样写

 <table>
        <tbody>
            <tr is="row"></tr>
            <tr is="row"></tr>
            <tr is="row"></tr>
        </tbody>
        </table>

这样,便可以正确的渲染:
在这里插入图片描述

例子

可以用来切换不同的tab栏页面

 <div :is='pageName' ></div>
 
 data () {
    return {
    	index:0,
    	pageNameMap: {
        0: 'enterpriseBaseInfo',
        1: 'other',
        }
	}
},
computed: {
    pageName () {
      return this.pageNameMap[this.index]
    },
 }
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值