- 博客(82)
- 收藏
- 关注
原创 减少重复的请求之promise缓存池(闭包版) —— 缓存promise,多次promise等待并返回第一个promise的结果
当缓存中的异步完成后,还继续执行下一个异步时,可以改造一下,使用isFulfilled或者then来判断,异步是否完成。那如何让promise步立即执行,我想到了函数,第一个设置并缓存promise时,执行promise。当一个业务组件初始化调用了接口,统一个页面多吃使用同一个组件,将会请求大量重复的接口。此时会发现,依旧会多次执行相同的promise(调用多个相同的接口),所以。promise的缓存,难点是如何将一旦新建就会立即执行的promise缓存。如果将promise当作一个普通的对象,进行缓存。
2024-10-09 13:23:44 376
原创 减少重复的请求之promise缓存池(构造器版) —— 缓存promise,多次promise等待并返回第一个promise的结果
2、构造器实例,必须在初始化调用接口的组件外部使用,才能起到缓存promise的作用;放在组件内,每次都会创建一个全新的缓存池。当一个业务组件初始化调用了接口,统一个页面多吃使用同一个组件,将会请求大量重复的接口。1、promise一旦新建就会立即执行,所以 要将promise保成函数传入;3、记得要处理promise rejected的场景。公共的地方设置异步缓存池的构造器以及公共的构造器实例。
2024-09-29 10:01:27 514
原创 使用promise封装轮询请求,异步的报错,走不到外部的catch
偶现发现,轮训请求,第一次请求失败,可以正常的走到外部的catch,但是如果第一次请求成功,后面的请求失败,走不到外部的catch里面去;原代码。
2024-09-18 10:41:20 197
原创 使用el-cascader封装一个下拉级联按钮BaseCascadeDropDown
3、每次点击(后)需要将勾选状态重置 —— 发现el-cascader组件内部问题,修改其勾选状态不生效,直接修改el-cascader组件内的数据也不生效,只能将其销毁重建。每次级联树展开时,需要动态计算弹窗的宽度,还不如直接使用el-cascader + el-button进行封装。2、点击按钮时,弹出el-cascader会自动计算宽度的弹窗。1、隐藏el-cascader里面的input框;
2024-08-30 10:54:55 354 1
原创 el-select远程搜索,查询条件为空,没有搜索到数据时,展示“无数据”
查询条件没有值,远程接口没有数据时,手动给组件赋值一个空格字符串,使其走到「查询条件有值,远程接口没有数据时」的判断,也就展示了“无数据”现状:1、查询条件没有值,远程接口没有数据时,不展示“无数据”;2、查询条件有值,远程接口没有数据时,可以展示“无数据”;
2024-08-12 10:06:58 474
原创 vue开启keep-alive缓存时,关于子组件上使用:key=“id“的问题以及解决方案
2、致命错误,修改URL的id时,缓存之前有数据,子组件销毁重建,请求接口也有数据,但是因为keep-alive缓存了组件实例而不是组件的数据,表格的数据丢失;2、:key=“timeStap”,结合activated、deactivated —— —— keep-alive缓存activated时,会重新请求。1、切换tag,会触发id的变更,再次切回来时,将会触发表格销毁重建,重新请求数据,局部刷新表格的缓存丢失;特定场景下,必须使用:key="id"时,可以考虑下面的两个方式。
2024-08-02 13:26:42 376
原创 自定义一个背景图片的高度,随着容器高度的变化而变化,小于图片的高度时裁剪,大于时拉伸100%展示
1、通过js创建标签来获取背景图片的宽高比;2、当元素的高度大于原有比例计算出来的高度时,背景图片的高度拉伸自适应100%,否则高度为auto,会自动被裁减3、背景图片容器高度变化时,自动计算背景图片的高度在这里插入图片描述${
2024-06-28 14:19:36 444
原创 页面<html>上多了一个滚动条,定位发现是<body>里面多了一个id为trans-tooltip的div
页面根标签html多了一个滚动条,发现body里面多了一个id为trans-tooltip的div,虽然width为0,height为0,但是其子元素还是有高度,占据了空间,最终导致了滚动条;chrome的拓展应用导致的,通过拓展的id,查询到是百度翻译,这个拓展插件导致的。2、给设置overflow: hidden;1、临时解决方案:禁用插件。
2024-05-22 11:22:37 513
原创 el-table树形表格实现 父子联动勾选,子部分勾选时,父处于半勾选的状态
el-table树形表格实现 父子联动勾选,子部分勾选时,父处于半勾选的状态。。
2024-02-23 16:56:53 1264
原创 el-form 组件,没有进行前端校验,必填的字段却会自动校验,递归删除所有空值字段
el-form 组件,没有进行前端校验,必填的字段却会自动校验,递归删除所有空值字段
2024-01-05 14:38:23 507
原创 el-pagination 分页器,当total为0时,设置pageIndex大于1,请求数据获取到总total后,分页器页码依旧展示为1
查询表格,初始化时,pageIndex默认为1,后面因为查询条件数据缓存,pageIndex设置为了4,但是pagenation组件使用都是展示1,页面的数据确实是第4页的数据;组件外部的数据没有问题,系el-pagenation组件内部的问题。附上BasePagenation.vue组件代码。组件内外的数据没有同步。
2024-01-03 17:48:59 739
原创 el-input-number设置step、stepStrictly后,数据精度丢失的问题
stepPrecision为false,或者必须结合precision一起使用。这里是设置5位小数的step,初始化时,用户修改时,很容易有精度问题;element底层组件el-input-number的监听函数有问题;设置4位小数step,需要在特定数字时,才能回体现这个bug;el-input-number的配置。
2023-12-05 17:29:08 1103
原创 闭包基本知识汇总
闭包是指有权访问另一个函数作用域中变量的函数,在Javascript中,只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成 “定义在一个函数内部的函数”。所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。闭包是一种JavaScript特有的一种函数结构(一种嵌套用法)。
2023-06-01 11:13:40 251
原创 猪齿鱼Choerodon UI中,对保存校验失败的提示语进行优化,自动提示所有校验失败的字段,而不是简单的提示“数据校验不通过”
以10条新建的关联交易行(存在关联的上级数据源与行关联的子级数据源)为例,原则:模块越多,行数约多,数据量越大,速度越慢!技术方案:1、所有模块、所有行进行校验,提示“数据校验失败!—— 优化之前的校验方式,响应速度最慢,平均3000ms,有明显的卡顿感,所有模块所有行均被标红;2、所有模块、所有行进行校验,提示第一行错误信息;—— 速度只会比上面的更慢,不推荐采用;3、逐个模块校验,逐行校验,提示第一行错误信息;
2023-05-31 14:41:22 683
原创 猪齿鱼Choerodon UI的级联数据源之间、非级联数据源之间的请求状态进行关联
— 注意,如果只在query父级数据时,设置setLineLoading(true),由于父级数据加载完毕,发现没有返回子级数据源的数据时,也会触发一次子级的load事件,导致无法判断子级数据源的加载状态。—— 解决方案是,需要关联的数据源绑定他们的请求状态,当关联数据源中任意一个在请求,那么所有关联的数据源均loading,当最后一个数据源加载完毕后,结束所有关联数据源的loading;在执行父数据源请求的函数中,使用async/await,只能await父级的请求,并不能子级的await;
2023-05-30 16:47:15 719
原创 关于for循环中setTimeout的一道有趣的面试题
同步微任务执行完毕后执行异步微任务,5个setTimeout,由于第一个参数返回undefined,执行时eval(undefined),1000ms后,什么也没有执行;这里setTimeout的第一个参数是自执行函数,会立即执行,是同步微任务;循环中输出1 2 3 4 5;有的同学说,是因为闭包导致的输出1 2 3 4 5;闭包是一种JavaScript特有的一种函数结构(一种嵌套用法)—— 返回类型为void,故1000ms后,什么也不输出。立即输出1 2 3 4 5;1000ms后,什么也不输出。
2023-05-30 16:43:14 260
原创 猪齿鱼Choerodon UI,dataSate.validate保存校验失败时提示详细的错误信息
猪齿鱼Choerodon UI保存校验,校验失败时提示详细的错误信息
2023-05-22 10:18:06 560
原创 React中setState/useState的对比分析
React中setState/useState的对比分析,包括同步异步问题、如何使用setState/useState的最新的值、如何使用setState/useState 连续设置两次的分析
2023-04-04 17:50:26 640
原创 猪齿鱼(Choerodon UI )的通用提交的封装 —— 两种方案,A.使用dataSet的自身的submit,B.使用axios.post来提交
猪齿鱼(Choerodon UI )的通用提交的封装 —— 两种方案,A.使用dataSet的自身的submit,B.使用axios.post来提交
2023-02-17 10:04:25 649
原创 猪齿鱼(Choerodon UI )dataSet.delete通用删除的封装 —— 解决两个dataSet.delete的自身问题
猪齿鱼的通用删除的封装,通过两次删除的方案,解决dataset.delete部分删除成功的问题
2023-02-17 09:57:38 715
原创 前端如何使用post下载文件(将用户勾选的数据导出、下载),以及下载window.open是预览的文件
前端如何使用post下载文件(将用户勾选的数据导出、下载),以及下载window.open是预览的文件
2022-12-05 10:39:48 3972
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人