vue每个组件必须只有一个根元素导致dom不必要的嵌套,如何避免呢?

    <template>
        <div>  /** 这个div导致dom多嵌套了一层?!!我其实不是很需要这个div,xx */
            <article v-for="item for list" :key="item.id">
                {{item.desc}}
            </article>
        </div>    
    </template>
    

这个div导致dom多嵌套了一层?!!我其实不是很需要这个div, xx ,有没有解决办法呢?新手求教

阅读 5.6k
5 个回答

你可以尽量用语义化的标签取代div这种标签,比如渲染正文可以用main,侧栏aside之类的或者section,另外如果要针对这个组件做整体样式控制,多一父级包裹其实方便样式管理。

如果是vue 1.0是允许template下直接到需要显示的元素,但是官方推荐在外面包一个父元素。

而到了vue2.0就是必须在外面包一个父元素了,不然会显示不出来的。

可以直接这样

<template>
    <article v-for="item for list" :key="item.id">
        {{item.desc}}
    </article> 
</template>

<template>

<article v-for="item for list" :key="item.id">
    {{item.desc}}
</article>

</template>

直接这样就好了

可以换个思路,重构一下组件避免出现一个组件里面是多个同级的其它组件这种情况。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题