
js
人畜无害小白兔
这个作者很懒,什么都没留下…
展开
-
webpack优化打包速度
let config = { externals: { react: 'window.React', 'react-dom': 'window.ReactDOM', }, scripts: [ 'https://gw.alipayobjects.com/os/lib/react/16.13.1/umd/react.production.min.js', 'https://gw.alipayobjects.com/os/lib/react-dom/16.13...原创 2021-08-01 18:42:21 · 301 阅读 · 0 评论 -
js缓存接口数据并设置有效时间
为什么要做这个东西?项目中一个组件会在useEffect中请求Options数据,最近做了一个新需求,一个页面中会复用这个组件好几次,就导致一个接口会重复请求好几次,入参也不尽相同,所以封装了一个函数用来处理这种情况。函数缓存每一个请求的返回的数据,并且在遇到相同路径相同入参的请求时直接返回缓存的数据而不请求接口,否则请求接口更新缓存数据。缓存有效期到了以后清除整个缓存池。代码xport function CreateCachePool(cacheControl = 5000) { const p原创 2021-07-10 09:33:22 · 1359 阅读 · 0 评论 -
通过keys数组更新复杂对象的值
最近在做一个复杂表单,表单通过后台返回的一个对象渲染,用户操作表单的同时更新此对象的值,用户提交表单时把对象传回,由于这个对象嵌套比较深,更新里面的一些value比较麻烦,于是封装了一个函数用来更新对象。函数接受三个参数,keys:作为寻址路径的key集合,key按照嵌套的由浅到深依次写入该数组中。value:要写入的值target:要修改的对象举个例子,有个对象object,现在要把它c属性对应的value改为2.const object={a:{b:{c:1}}方法调用updateOb原创 2021-05-18 21:44:42 · 159 阅读 · 0 评论 -
js获取一段时间内工作日的天数
代码function workday_count(start, end) { let count = 0; let current = start; while (start < end) { const day = current.day(); if (day > 0 && day < 6) { count += 1; } current = current.add(1, 'd'); } return co原创 2020-07-26 10:34:04 · 2828 阅读 · 0 评论 -
js中的异步
天生同步js一开始是被设计出来用于表单的校验的,早期的页面客户端功能单一,表单的校验需要由服务器来处理,为了提高效率和减小服务器的压力,js就被设计出来了。由于设计的目标比较低,js也被设计得比较简单:js被设计成了单线程,这样就避免了复杂的线程操作,但是js就没有办法做多线程的操作了。如何异步...原创 2020-05-19 21:22:31 · 329 阅读 · 0 评论 -
react使用高阶组件的方式封装一个remoteInput组件
1.什么是高阶组件?参照高阶函数的定义:高阶函数是一个接受一个函数作为参数的,可以操作其他函数的函数,我们可以把高阶组件做这样一个定义:高阶组件是一个接受一个组件作为参数的,可以操作其他其他组件的组件。2.如何实现一个高阶组件?我们往往把高阶组件定义为一个函数组件,因为通过使用函数我们可以很方便接受一个组件作为原始组件,然后返回一个新的组件,在这个新组件中挂载渲染原始组件,同时传入所有的pr...原创 2020-04-18 21:06:05 · 941 阅读 · 0 评论 -
通过reduce实现redux中的compose
通过reduce实现redux中的compose在es6中,我们可以使用promise来解决‘回调地狱’的问题,但是在一些应用场景中我们还会遇到另一种‘地狱’:函数的深度嵌套调用,此时我们就可以用compose函数来扁平化这种调用,提升代码可读性。提出问题假设有这么一段代码:function f1(data) { console.log('f1执行') return data+...原创 2020-04-07 19:30:59 · 705 阅读 · 0 评论