首页 > 其他分享 >解决Vue处理超过16位数字精度丢失问题

解决Vue处理超过16位数字精度丢失问题

时间:2023-12-06 13:56:32浏览次数:35  
标签:Vue 16 处理 前端 json bigint 丢失 JsonSerialize

当我们使用MyBatis-Plus 使用 ID_WORKER 或者 ASSIGN_ID(雪花算法) 生成的id作为主键时,因为其长度,为19位,而前端一般能处理16位,如果不处理的话在前端会造成精度丢失,最后两位会变成00,如下图,感觉像是四舍五入后的效果。

 

处理这种问题有两种方案,要么后端出处理,要么前端处理

后端处理:

直接把id类型改为String就行,这样是可以,但是我们如果非要用Long呢?

我们可以给对应的实体类主键属性加入注解@JsonSerialize

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;

@JsonSerialize(using = ToStringSerializer.class)
@TableId
private Long id;

前端处理:

前端一般都是用axios进行数据请求,我们通过引入json-bigint来解决

yarn add json-bigint
//或
npm install json-bigint

在封装的请求工具类中添加如下代码即可。

axios.defaults.transformResponse = [
  function (data) {
    const json = JSONBIG({
      storeAsString: true
    })
    const res = json.parse(data)
    return res
  }
]
 

标签:Vue,16,处理,前端,json,bigint,丢失,JsonSerialize
From: https://www.cnblogs.com/lftBlogs/p/17879330.html

相关文章

  • Vue3+Vite+ElementPlus管理系统常见问题
    本文本记录了使用Vue3+Vite+ElementPlus从0开始搭建一个前端工程会面临的常见问题,没有技术深度,但全都是解决实际问题的干货,可以当作是问题手册以备后用。本人日常工作偏后端开发,因此,文中的一些前端术语描述可能不严谨,敬请谅解。重点是:这里记录的解决方案都是行之有效果的,拿来即......
  • 技术博客:Vue中各种混淆用法汇总
    ​ 技术博客:Vue中各种混淆用法汇总 摘要本文主要介绍了在Vue中使用的一些常见混淆用法,包括newVue()、exportdefault{}、createApp()、Vue.component、Vue3注册全局组件、Vue.use()等,以及如何使用混淆器对代码进行加固,保护应用安全。引言在Vue开发中,对于新手来说,常常会......
  • 即时通讯技术文集(第26期):实时音视频技术合集(Part1) [共16篇]
    为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第26 期。[- 1 -] 实时语音聊天中的音频处理与编码压缩技术简述[链接] http://www.52im.net/thread-825-1-1.html[摘要] 在视频或者音频通话过程中,一方面为了减小原始声音数据......
  • vue3引入mitt(eventBus)
    版本"mitt":"^3.0.1"1、npminstallmitt2、项目下创建文件夹eventBus建myEventBus.jsimportmittfrom'mitt'exportdefaultmitt() 3、组件里监听组件AimportmyEventBusfrom"../eventBus/myEventBus";myEventBus.on('closeVisit�......
  • 16_平衡二叉树
    平衡二叉树【题外话】二叉树节点的深度:指从根节点到该节点的最长简单路径边的条数。(从上往下看)二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。(从下往上看)小疑惑:为什么104.二叉树的最大深度中求的是二叉树的最大深度,也用的是后序遍历。(本质上求解的就是根节......
  • Vue使用el-cascader实现地区选择器组件
    1.使用组件-效果展示(推荐)1.2安装组件依赖(默认是V6版本,旧版本V5.02)官方文档地址(二级联动,三级联动包含教程):https://www.npmjs.com/package/element-china-area-datanpminstallelement-china-area-data-Snpminstallelement-china-area-data@5.0.2-S1.3V6版本使用注......
  • Vue混淆与还原
    ​引言Vue是一种流行的JavaScript框架,用于构建用户界面。它简单易用且功能强大,备受开发者喜爱。然而,在传输和存储过程中,我们需要保护Vue代码的安全性。混淆是一种有效的保护措施,可以加密和压缩代码,使其难以被理解和修改。本文将介绍Vue混淆的概念以及如何进行还原。混淆混淆是......
  • vue3 之 封装hooks
    注意:使用Hooks来做的话,需要封装一个以use开头的函数,自定义Hooks有一个潜规则,就是要use开头一、相关链接①已经封装好可直接使用的:https://vueuse.org/core/useMounted/② 为什么要在Vue3中多使用Hooks?好处是啥?: https://zhua......
  • vue3引入pinia
    1、npminstallpinia2、在项目目录建store文件夹创index.jsimport{createPinia,defineStore}from"pinia";constpinia=createPinia()pinia.state.valueconsttoken=defineStore('token',{state(){return{token:null}......
  • 基于Vue3.3 + TS4 ,让我们自主打造比肩 ElementPlus 的优质组件库的一些经验总结
    Vue.js作为一款流行的JavaScript框架,在前端开发中扮演着重要的角色。本文将分享在Vue3.3和TypeScript4的环境下,打造优质组件库的经验总结,并提供相关示例代码。一、创建项目并配置开发环境首先,我们需要创建一个新的Vue项目并配置好开发环境。具体步骤如下:使用VueCLI创建一个新的......