v-for深度遍历数据的表单实战应用

项目场景:

在项目中用到v-for来遍历表单,简单的用法就不介绍了。

  • 如何解决在项目中嵌套数据的问题
  • 如何做深度的遍历
  • 如何实现一个调查问卷
  • v-for遍历数组中的数组

类似于以下这种数据(要实现一个调查问卷,要做深度遍历的情况):

这里实现了:

  • 一个调查问卷的渲染
  • 拿出 value 值并给到 answer 中以便后期操作

根据不同id遍历 question 题目,然后再二次遍历 resource 中的选项

在这里插入图片描述


用法:

在这里插入图片描述

在这里我用到了bootstrap4.5中的组件样式(当然elementUI的样式相对代码少一些)
v-for="item in sleepForm" :key="item.id" 这里v-for循环遍历,内部 {{ item.question }} 渲染;
二次渲染的时候v-for="it in item.resource" :key="it.id" :label="it.value" 这里将 resource 中的值取出来对其中的 {{ it.name }} 进行动态渲染。

因为用到了bootstrap的缘故,这里的数据的结构设计的有点复杂了:
v-model="item.answer 将数据绑定的value值最后整合到answer中;
:data-target="'#' + item.data_target" B的折叠下拉功能,用来操作下拉。
:id="item.data_target B的下拉内容的展示,这里都用到了v-bind 。


再来看看传统手艺:

最近在做一个类似于表单的页面,最开始用到了“传统手艺”,但是这样写页面太过冗余。

在这里插入图片描述
大概就是为了实现这样的界面:
在这里插入图片描述
但是这个“传统手艺”写一个界面用上千行显然不合适。


附上 js 取出 value 值并合并数组的方法:

	getAnswers() {
      const answers = this.sleepForm.map((item) => item.answer);
      console.log(answers);
    },

得到的结果是这样的:
在这里插入图片描述
附带项目代码地址链接


接下来对这个得到的数据进行操作即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值