美文网首页思科DevNet
Vue的component使用一点小小的心得

Vue的component使用一点小小的心得

作者: LeeBoot | 来源:发表于2017-08-24 21:37 被阅读0次
一:Vue.component中的template属性规则:
  • 错误写法:

Vue.component('tr-item',{
props:['member'],
template:'<th>{{member.name}}</th>'+
'<th>{{member.shoolnumber}}</th>'+
'<th>{{member.major}}</th>'
})

  • 带来的问题:读取模板定义的值时,只能读取到一对<th></th>定义的name值。
  • 一开始我还怀疑template不支持定义多个值(这句话总感觉有问题)
  • 正确写法:
  Vue.component('tr-item',{
        props:['member'],
        template:'<tr><th>{{member.name}}</th>'+
        '<th>{{member.shoolnumber}}</th>'+
        '<th>{{member.major}}</th></tr>'
    })
二:Vue中使用组件后生成的DOM受到的HTML限制
  • 受限制写法:
<table class="tableName" border="1px">
            <tr>
                <th>name</th>
                <th>school number</th>
                <th>major</th>
            
            </tr>
            <tr-item 
                v-for="student in memberinfo" 
                v-bind:member="student" 
                v-bind:key="student.id">
            </tr-item>
</table>
  • 带来的问题:因为 Vue 只有在浏览器解析和标准化 HTML 后才能获取模版内容,也就是说在table元素已经渲染完了之后才进行<tr-item></tr-item>的加载,然后就直接跑外面去了,不会进table标签;
受限制的
<table class="tableName" border="1px">
            <tr>
                <th>name</th>
                <th>school number</th>
                <th>major</th>
            
            </tr>
            <tr is="tr-item" 
                v-for="student in memberinfo" 
                v-bind:member="student" 
                v-bind:key="student.id">
            </tr>
        </table>
  • 效果如下:


    规避
三:Vue组件的运行原理:

未知,欢迎补充,本人第一天看Vue;

相关文章

网友评论

    本文标题:Vue的component使用一点小小的心得

    本文链接:https://www.haomeiwen.com/subject/jcqydxtx.html