开发Vue组件细节点

本文探讨了Vue组件的data属性为何必须为函数而非对象,解析了Vue组件is特性的使用场景和作用,以及如何利用ref获取组件实例或DOM元素,帮助开发者更深入地理解和运用Vue组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在组件定义data只能是函数,不能是对象

        Vue.component('row',{
            data:function () {
                return{
                    content: 'this is function'
                }
            },
            template: '<tr><td>{{content}}</td></tr>'
        })

2.Vue组件is特性

因为vue模板就是dom模板,使用的是浏览器原生的解析器进行解析,所以dom模板的限制也就成为vue模板的限制了,要求vue模板是有效的HTML代码片段。但是由于dom的一些html元素对放入它里面的元素有限制,所以导致有些组件没办法放在一些标签中,比如<ul></ul>  <select></select><a></a> <table></table>等等这些标签中,所以需要增加is特性来扩展,从而达到可以在这些受限制的html元素中使用。例如:

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


    <script>
        Vue.component('row',{
            data:function () {
                return{
                    content: 'this is function'
                }
            },
            template: '<tr><td>{{content}}</td></tr>'
        })
    </script>

 

3.ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例:

 <counter ref="one" @change="handleChange"></counter>

 <script>
    ue.component('counter',{
            template: '<div @click="handleClick">{{number}}</div>',
            data:function () {
                return{
                    number:0
                }
            },
            methods:{
                handleClick:function () {
                    this.number++;
                }
            }
        })
 </script>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值