【工作】vue对比数据差异展示

背景

提示:产品需要两组数据展示出对比差异,类似代码比对的效果。

例如:
在这里插入图片描述
最终效果图:
在这里插入图片描述



前言

调研了很多比对的插件,由于我们的数据是动态的且有一些业务逻辑存在,所以最后采用的是html-diff这个依赖。对应的链接为【html-diff


提示:以下是我的解决办法,欢迎大家积极留言交流更好的解决方案

一、html-diff是什么?

一个对比html的diff依赖工具库。

二、使用步骤

1.引入库

代码如下(示例):

import HtmlDiff from 'htmldiff-js';

2.渲染数据但不展示

代码如下(示例):

// 这里是动态拿到需要比对的两组数据
let originalHTML = this.$refs.oldHtml.innerHTML;
let newHTML = this.$refs.newHtml.innerHTML;
this.innerHtml = HtmlDiff.execute(originalHTML, newHTML);
// 这里是我写的样式,大家可以根据自己需求进行调整
del {
  text-decoration: line-through;
  background-color: #fbb6c2;
  color: #555;
}

ins {
  text-decoration: none;
  background-color: #d4fcbc;

}
// 老的数据渲染
<div ref="oldHtml" v-show="false">
 xxx业务逻辑
</div>
// 新的数据渲染
<div ref="newHtml" v-show="false">
xxx业务逻辑
</div>
// 用来渲染比对之后的html
<div v-html="innerHtml">
</div>

这里这样写的原因,主要是因为希望拿到真正渲染之后的html来进行比对,因为数据有一些业务逻辑的展示逻辑等,所以用最后呈现出来的html进行比对。


总结

以上就是今天要分享的内容啦,本文仅仅简单介绍了html-diff的使用从而解决实现比对的业务场景,如果大家对于以上场景有更好的实现方式,欢迎大家积极评论一起交流呀~~~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值