You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue3使用Bootstrap每行6个元素布局时出现标签未闭合报错

解决Vue3中Bootstrap <b-row>标签拆分引发的闭合错误

Vue模板编译器要求所有元素必须保持标签完整性,不能把<b-row>的起始和结束标签拆分到不同的条件模板中,这种写法会破坏模板结构,直接触发Element is missing end tag错误。

重构方案

正确的思路是先将数据源按每行6个元素分组,再基于分组后的数组渲染完整的<b-row>:

  1. 添加计算属性分组数据
    在组件逻辑部分,通过计算属性将items拆分为每6个元素一组的二维数组:
import { computed } from 'vue'

export default {
  setup() {
    const items = /* 你的业务数据源 */
    
    const groupedItems = computed(() => {
      const result = []
      for (let i = 0; i < items.length; i += 6) {
        result.push(items.slice(i, i + 6))
      }
      return result
    })

    return { groupedItems }
  }
}
  1. 修改模板渲染逻辑
    基于分组后的数组,直接渲染完整的<b-row>和内部的<b-col>:
<main role="main" class="container-fluid">
  <div class="container">
    <b-row v-for="(group, idx) in groupedItems" :key="idx">
      <b-col v-for="(item, itemIdx) in group" :key="itemIdx">
        {{ item.name }}
      </b-col>
    </b-row>
  </div>
</main>

补充说明

  • 计算属性groupedItems会随items的变化自动重新分组,确保视图与数据同步。
  • 每个<b-row>都是完整闭合的标签,完全符合Vue模板语法规范,彻底解决标签错误。
  • 最后一组元素不足6个时,Bootstrap的栅格系统会自动适配布局,无需额外处理。

内容的提问来源于stack exchange,提问作者Scott Robinson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:22:40