前端通关日记之优雅添加数组元素

本文讲述了在前端使用Element-UI的标签处理数组元素时遇到的自动去重问题,以及如何通过监听change事件,为数组元素添加唯一后缀(如"(1)")来避免重复,从而实现优雅地添加数组元素。在向后端传递参数和展示数据时,还介绍了如何添加和移除后缀的处理方法。
摘要由CSDN通过智能技术生成

起源

需求是需要在前端输入一个数组,该数组作为参数请求后端接口。项目前端UI框架采用element-ui, 笔者实现的方式是 “巧用”<el-select> 标签,并添加了多选等一系列属性,代码如下:

<el-select
    v-model.trim="scope.row.query"
    multiple // 多选
    filterable 
    default-first-option
    allow-create 
    placeholder="请输入变量查询语句">
</el-select>

这样的话用户通过循环 输入 -> 回车 动作,即可在一个输入框内为数组添加元素。示例如下:

( 该项目详细信息可参阅项目起源 )

可以看到无论是考虑交互体验还是前端美观性,这种实现方式都是非常良好的。

但是,遇到了下面的问题。

问题

当数组中存在同样的参数时, 这种方法就行不通了,因为 el-select 会帮你自动去重,示例如下:

这 … …

好吧 … …

因为笔者项目中是会存在这种应用场景的(详情请参阅 笔者这篇作文dict_get 函数中的 locators 参数),所以并不能默认数组中不会出现同样的元素。

行吧那怎么解决呢???

解决思路

笔者认为,任何伟大的问题的解决思路一定是 简洁且清晰明了 的。

首先,我需要对自己进行一次深刻的灵魂拷问

  1. Q:是改前端/后端,还是一起都改呢?
    A:(os : 后端怎么都不能因为这个情况去做任何改动,太不合理了。)好的,那就修改前端。
  2. Q:前端具体怎么改呢,是自己实现一个组件还是在原有组件上做一些处理呢?
    A:(os : 我
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值