当前位置:首页 > VUE

vue实现整个模块循环

2026-02-23 05:09:21VUE

使用 v-for 循环渲染整个模块

在 Vue 中,可以通过 v-for 指令实现模块级别的循环渲染。假设需要循环渲染一个包含多个子组件的模块,可以这样实现:

<template>
  <div>
    <!-- 循环渲染模块 -->
    <div v-for="(item, index) in moduleList" :key="index">
      <!-- 模块内容 -->
      <h3>{{ item.title }}</h3>
      <p>{{ item.content }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      moduleList: [
        { title: '模块1', content: '内容1' },
        { title: '模块2', content: '内容2' },
        { title: '模块3', content: '内容3' }
      ]
    }
  }
}
</script>

循环渲染组件

如果需要循环渲染的是自定义组件,可以将组件放在 v-for 中:

vue实现整个模块循环

<template>
  <div>
    <custom-component 
      v-for="(item, index) in componentList" 
      :key="index"
      :title="item.title"
      :content="item.content"
    />
  </div>
</template>

<script>
import CustomComponent from './CustomComponent.vue'

export default {
  components: { CustomComponent },
  data() {
    return {
      componentList: [
        { title: '组件1', content: '内容1' },
        { title: '组件2', content: '内容2' },
        { title: '组件3', content: '内容3' }
      ]
    }
  }
}
</script>

动态生成模块数据

模块数据可以来自 API 请求或其他动态来源:

<template>
  <div>
    <div v-for="(module, index) in modules" :key="module.id">
      <h3>{{ module.name }}</h3>
      <p>{{ module.description }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      modules: []
    }
  },
  async created() {
    try {
      const response = await fetch('/api/modules')
      this.modules = await response.json()
    } catch (error) {
      console.error('获取模块数据失败:', error)
    }
  }
}
</script>

嵌套循环渲染复杂模块

对于嵌套结构的模块数据,可以使用嵌套的 v-for

vue实现整个模块循环

<template>
  <div>
    <div v-for="(section, sIndex) in nestedModules" :key="sIndex">
      <h2>{{ section.title }}</h2>
      <div v-for="(item, iIndex) in section.items" :key="iIndex">
        <h3>{{ item.title }}</h3>
        <p>{{ item.content }}</p>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      nestedModules: [
        {
          title: '主模块1',
          items: [
            { title: '子项1-1', content: '内容1-1' },
            { title: '子项1-2', content: '内容1-2' }
          ]
        },
        {
          title: '主模块2',
          items: [
            { title: '子项2-1', content: '内容2-1' },
            { title: '子项2-2', content: '内容2-2' }
          ]
        }
      ]
    }
  }
}
</script>

使用计算属性处理循环数据

对于需要处理的循环数据,可以使用计算属性:

<template>
  <div>
    <div v-for="item in processedItems" :key="item.id">
      <h3>{{ item.formattedTitle }}</h3>
      <p>{{ item.formattedContent }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, title: '原始标题1', content: '原始内容1' },
        { id: 2, title: '原始标题2', content: '原始内容2' }
      ]
    }
  },
  computed: {
    processedItems() {
      return this.items.map(item => ({
        ...item,
        formattedTitle: `处理后的${item.title}`,
        formattedContent: `处理后的${item.content}`
      }))
    }
  }
}
</script>

循环渲染带条件的模块

可以结合 v-ifv-for 实现条件渲染:

<template>
  <div>
    <template v-for="item in items">
      <div v-if="item.isActive" :key="item.id">
        <h3>{{ item.title }}</h3>
        <p>{{ item.content }}</p>
      </div>
    </template>
  </div>
</template>

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, title: '项目1', content: '内容1', isActive: true },
        { id: 2, title: '项目2', content: '内容2', isActive: false },
        { id: 3, title: '项目3', content: '内容3', isActive: true }
      ]
    }
  }
}
</script>

标签: 模块vue
分享给朋友:

相关文章

vue 实现权限

vue 实现权限

Vue 实现权限控制的方法 在 Vue 项目中实现权限控制通常涉及前端路由、组件和按钮级别的权限管理。以下是几种常见的实现方式: 路由权限控制 通过路由守卫实现权限验证,过滤用户无权访问的路由:…

vue实现导出

vue实现导出

Vue 实现导出功能的方法 在 Vue 项目中实现导出功能通常涉及将数据导出为 Excel、CSV 或其他格式。以下是几种常见的实现方式: 使用 xlsx 库导出 Excel 安装 xlsx 库:…

vue实现flvvideo

vue实现flvvideo

vue-flv-player 实现 FLV 视频播放 安装依赖包 npm install flv.js vue-flv-player 基础组件引入 <template> <v…

vue 实现modal

vue 实现modal

Vue 实现 Modal 的方法 使用 Vue 原生组件 通过 Vue 的组件系统可以轻松实现 Modal。创建一个可复用的 Modal 组件,通过 props 控制显示与隐藏。 <temp…

vue拖动实现

vue拖动实现

实现 Vue 拖动功能的方法 使用 HTML5 拖放 API 在 Vue 中可以利用 HTML5 的原生拖放 API 实现拖动功能。通过 draggable 属性标记可拖动元素,结合 @dragsta…

vue scrolltop 实现

vue scrolltop 实现

实现 Vue 中的 scrollTop 在 Vue 中实现滚动到顶部功能可以通过多种方式完成,包括使用原生 JavaScript、Vue 指令或第三方库。以下是几种常见的实现方法: 使用原生 Jav…