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

基于Vue.js根据数组条目数量动态创建方形盒子

Vue.js 动态生成对应数量的方形盒子

这事儿实现起来挺简单的,核心就是用Vue的v-for指令循环渲染数组项,再配合CSS把元素改成方形样式就行。我给你写个完整的可运行示例,连控制台怎么传数组的方法也一起说明白:

完整代码示例

<!DOCTYPE html>
<html>
<head>
  <title>Vue Dynamic Boxes</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  <style>
    .box-container {
      display: flex;
      gap: 1rem;
      margin: 2rem;
      flex-wrap: wrap;
    }
    .square-box {
      width: 100px;
      height: 100px;
      border: 1px solid #333;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.2rem;
      background-color: #f5f5f5;
      transition: background-color 0.2s;
    }
    .square-box:hover {
      background-color: #e0e0e0;
    }
  </style>
</head>
<body>
  <div id="app">
    <div class="box-container">
      <!-- 循环渲染每个盒子,绑定唯一key确保DOM更新效率 -->
      <div 
        v-for="(item, index) in boxItems" 
        :key="index" 
        class="square-box"
      >
        {{ item }}
      </div>
    </div>
  </div>

  <script>
    // 把Vue实例挂载到全局变量vm,方便控制台直接操作
    const vm = new Vue({
      el: '#app',
      data() {
        return {
          // 初始空数组,后续从控制台更新
          boxItems: []
        }
      }
    })
  </script>
</body>
</html>

怎么从控制台传入数组?

打开浏览器开发者工具(按F12)切换到Console标签,直接输入下面的代码回车:

vm.boxItems = ['101','102','103']

你会立刻看到页面上生成三个方形盒子,分别显示101、102、103。后续如果要修改数组(比如新增条目vm.boxItems.push('104'),或者替换成新数组),Vue会自动同步更新DOM。

关键细节说明

  • v-for="(item, index) in boxItems":遍历boxItems数组,item是当前元素值,index是它的索引
  • :key="index":给每个循环项绑定唯一标识,帮助Vue高效更新DOM(如果数组元素有自身唯一ID,用ID替代index会更稳妥)
  • 全局vm变量:我们把Vue实例赋值给了全局变量,这样在控制台就能直接访问和修改它的数据了

内容的提问来源于stack exchange,提问作者Prasanna Srinivasan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:55:38