比如标签状态,后端定义 0/1/2/3/4 这种,前端在标签这里是直接显示比较好,还是前端拿到原始数字去查字典再显示 又或者像状态,后端认为存的时候就查字典把 value 和 label 都存进去。
我是觉得存的时候可以存原始数据,在列表的时候后端查出来把相关内容转一遍直接返回给到前端。而不是值怎么存,怎么取。
1
luckyrayyy 37 天前
label 显然是用户展示侧的东西,不应该由后端拼装。后端提供的接口数据需要考虑通用性,不一定能直接提供给前端使用,不过你可以让他提供一个字典接口,方便你进行拼装。
|
2
wu67 37 天前
其实做不做都行的,
后台侧无所谓, 反正自己人用. 但是编辑数据的时候还是需要用原始状态配合状态字典, 除非你真的就用中文做值... 用户/客户端侧可以考虑格式化之后再返回, 可以避免部分业务状态被有心人猜到, 违规调用接口达成目的. (别杠什么鉴权, 很多时候真的就是能跑起来而已, 开发周期和 money 也不支持做得太完善...) |
3
ggzhyipeng 37 天前
后端设计一定要考虑拓展性和通用性,比如今天 0 表示未使用,明天产品想要改成待使用,甚至想要做多语言版本,你每次更新都要改数据库的数据?
|
4
aababc 37 天前
我们针对这种处理是分端的,针对客户端 后端的工作量比较大,基本上所有的数据都是处理好之后返回,客户端基本不做业务上的转换。针对 web 就比较糙了,基本都是让前端去处理
|
5
wysnxzm 37 天前
后端给的数据要简洁通用适配不同端比如 web 比如 app 比如小程序,如果多端无差异那么统一后端处理,如果多端有差异就不同端自行转换
|
6
Curtion 37 天前
我们是前端再去查字典展示
|
7
xiaohantx OP @luckyrayyy
@wu67 @ggzhyipeng @aababc @wysnxzm @Curtion 看起来似乎前后端都能处理,因为我是前端,不太理解后端,感觉似乎应该有个中间层,后端返回的数据经过中间层进行统一转掉 |
8
pianjiao 37 天前
你不想搞 就让后端返回现成的,这东西要是后面改了,前端也不要发版。要么就是他给 key + 字典 你自己取,反正不要把 label 定义在前端。 到时候要改 两边都要改。正常 就是 key + 字典 你来处理。 其实后端直接返回也没啥。
|
9
wysnxzm 37 天前
@xiaohantx #7 纯展示无逻辑可以由后端直接映射到中文,如果需要前端根据类型判断业务比如 type 为 1 时使用 a 样式 type 为 2 时使用 b 样式这种后端就应当返回 1/2/3 给前端
通常情况下都是给类型不做映射前端自己去做映射,因为纯展示的项目一般不会有前端岗位而是后端把前后端工作一起做了 |
11
pianjiao 37 天前
@xiaohantx #10 前端做 要在 data 列表中二次处理的,要考虑接口的请求顺序或者是请求一次存本地。然后每次从本地拿,存本地的话,还要考虑字典的更新周期。 所以如果不是那么频繁更新或者什么的话。在初始化的时候将字典请求缓存到本地。然后在替换。
不然你每次刷新 或者 查询 都得请求字典。 |
12
vinsony 37 天前
让后端同时返回 status 和 statusName 就好了
|
13
skallz 37 天前
你这个疑问,其实就是 bff 层出现的意义,哈哈
|
14
toma77 37 天前 via iPhone
我认为 label 和 value 都要传,value 在逻辑层用,label 在展示层用,现在后端一般对接好几个端(前端,客户端,三方平台等等),label 等展示统一由后端收口有助于各端一致性,同时需要修改时成本最低
|
15
siweipancc 36 天前 via iPhone
可以让后台开新接口,但是如果你有自定义国际化就爽了
|
16
lizy0329 36 天前
如果你是个后端,前端做好
如果你是个前端,后端做好 |
17
qtxxm 36 天前
如果是 Java 后端,弄个 注解实现在 返回数据给前端时,做个 字段翻译, 追加 label 。不用这么纠结了,前端展示场景无脑直接用就可以。
|