vue使用组件时的注意点

vue使用组件的注意点

注意点1. 当我们在使用子组件插入到像table、ul、ol等等这些标签的时候会出现一个H5的bug,如下图所示

<div id="app">
        <table>
            <tbody>
              	<row></row> 
              	<row></row>
              	<row></row>
            </tbody>
        </table>
    </div>
    <script src="vue.js"></script>
    <script>
        Vue.component("row", {
            data: function() {
                return {
                    
                }
            },
            template: "<tr><td>1123</td></tr>"
        })
        const vm = new Vue({
            el: "#app"
        })
    </script>


在这里可以看到,我们是将创建的子组件引入到table标签里面的,但是在我们页面看到的却不是和我们想的一样,那是因为H5的标准里面table里面没有包含row标签,所以这里会把row标签直接排除到table标签之外,但是可以先声明tr标签再通过vue中的is属性指向创建好的子组件就可以解决问题

 <div id="app">
        <table>
            <tbody>
               <tr is="row"></tr>
               <tr is="row"></tr> 
               <tr is="row"></tr>  
            </tbody>
        </table>
    </div>
    <script src="vue.js"></script>
    <script>
        Vue.component("row", {
            data: function() {
                return {
                    
                }
            },
            template: "<tr><td>1123</td></tr>"
        })
        const vm = new Vue({
            el: "#app"
        })
    </script>

这样就解决了啦!
注意点2. 当我们在创建新的子组件的时候,data里面的不能直接是一个{} 对象声明方式,需要通过函数的形式进行声明,这样做的目的就是防止子组件之间数据的冲突

注意点3. vue中ref引用,如果是在像div这种标签上直接使用ref引用的话,ref指向的就是dom元素本身,如果是子组件上使用ref的话,那ref指向的就是子组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值