- 博客(173)
- 收藏
- 关注
原创 antd upload组件beforeUpload返回promise之后,获取的文件不是file类型导致上传失败
再看到最后,一开始没理解 这个originFileObj是啥,打印了一下info.file.originFileObj,发现这就是我们想要的那个file文件。我们发现 ,现在可以阻止上传了,但是传给服务端的文件不是二进制的,而变成了一个object,所以报错了。再后来又仔细阅读了文档 ,发现了这段,于是尝试在resolve时把对象返回去,依然报错。但是这样并不能阻止文件上传,看了官方文档后,改用返回promise对象上传。真无语,一个版本问题,解决了一上午,尝试各种办法,结果人家文档里写了。
2023-08-30 14:10:32
88
原创 umi打包错误:You may need an appropriate loader to handle this file type, currently no loaders are co
然后我们发现这招确实好使,不报这个错了,但是开始报react-dom的错误。然后我们再安装下react-dom,安装不上可以加–force。但是搜索关键字没有找到相关代码 ,经查阅发现以下解决办法。然后发现 程序终于可以运行了……
2023-08-29 16:41:29
344
原创 js查找结构不同的两个数组中相同的元素并删除元素
准确的是循环中删除数然后我们当前的需求是在两个 数组中找重复的元素删掉,虽然两个 数组结构不一样,但是逻辑是一样的,最外卖使用forEach循环或者for循环都可以,把要操作的数组放内循环即可。删除后需要注意元素的索引值 ,比如以下案例,删除2之后索引值继续 + 1,但原数组索引已经变化了,所以会出现遍历漏掉元素和索引值对不上的情况。即每次删除之后都使索引值 i - 1,但每次删除数组元素后都需要重新调整数组的索引,如果数组元素比较多的话,性能就会很差。先从数组长度-1索引出发,逐渐减小索引值,来访问数组。
2023-08-29 16:40:11
98
原创 css内容达到最底部但滚动条没有滚动到底部
看了好久一直以为是布局或者overflow的问题,最后发现是因为我给这个滚动条加了个高度,我也是傻狗一样的,滚动条高度是通过内容计算出来的,怎么能赋值呢,笑死了。也是犯了一个傻狗一样的错误 ,滚动条样式是直接复制的蓝湖的代码,有个高度,然后就出现了这样的bug。
2023-08-11 17:33:40
677
1
原创 mac电脑git clone项目时报错证书过期和权限被拒绝
mac电脑使用git clone命令克隆项目时,一开始一直提示执行以下代码关掉验证后,解决了这个问题之后就不提示这个错误了,但是克隆又一直提示权限被拒绝将id_rsa等文件删除后也不管用,经同事测试,账号密码在window上可以克隆成功,那就证明肯定是mac电脑环境的问题啦!既然我们已经删除了id_rsa文件,那按理应该说git的ssh权限就不存在了,但是有没有可能它被存储起来了呢?经查阅,发现还真就是这个缓存问题。
2023-06-05 15:48:12
940
原创 js每隔一秒打印一个数,打印1 2 3 4 5
如题,一般按照我们的思路:1.写一个循环,循环5次,打印这个数2.每隔一秒打印一次,用到setTimeout于是,我们很容易写出最后我们发现,打印出了 5 5 5 5 5为什么呢,这个题其实考察的就是js中的事件循环了,这个之前我写过一篇文章,详见【】因为我们的事件循环执行顺序是【先同步,后异步,先微任务,再宏任务】,因为务,而var又不存在块级作用域,当进行for循环时,将 i 传递给setTimeout,因为,等到主线程任务for循环执行完毕再执行。
2023-05-04 10:28:07
1061
1
原创 gitlab CI/CD部署git fetch pack的报错解决
git fetch pack报错解决:将git fetch 改成git clone
2023-01-11 11:34:12
310
原创 useContext用法+切换主题小示例+对象型字面量传递的优化
useContext的使用,使用useContext做切换主题,对象型字面量传递的渲染优化
2022-10-17 11:47:03
549
1
原创 antv x6让拖拽控件工具箱悬浮在画布上,工具箱区域鼠标按下不生成节点
antv x6让拖拽控件悬浮在画布上,鼠标按下不再直接生成节点继承Dnd方法,如果鼠标还未拖出工具箱区域就不生成节点
2022-08-30 16:03:51
1126
原创 antd table表格支持多选框选择当前列,进行格式设置等
antd table 表格支持多选框选择当前列,对当前列进行格式设置,不是官方指的当前列,对当前列数据进行筛选,而是选择当前一整列,对这整列进行选择或者设置
2022-08-30 12:03:37
714
1
原创 antv x6连线与取消连线的操作+自定义连接桩+节点选择/框选
antv x6连线样式,连线与取消连线的操作,自定义连接桩样式及位置,节点选择/框选的操作,获取所有边与节点
2022-08-30 11:49:18
3165
原创 css改写滚动条样式 + antd-table scroll:x 和scroll:y 属性不生效
antd table列宽设置不生效、antd table scroll:x 不出现 、antd table scroll: x 和scroll:y 同时设置不生效、antd scroll 样式改写
2022-08-15 15:38:14
1258
原创 使用pre commit钩子再git commit时报错“husky - pre-commit hook exited with code 1 (error)”
file:///C:/Users/yunlu/AppData/Local/npm-cache/_npx/8facc973fbdb1091/node_modules/lint-staged/lib/index.js:112 if (runAllError?.ctx?.errors) { ^SyntaxError: Unexpected token '.' at Loader.moduleStrategy (internal/modules/esm/t
2022-08-05 19:50:37
6520
3
原创 git commit使用husky工具格式化时报错“error: cannot spawn .husky/commit-msg: No such file or directory Couldn‘t”
使用git cz规定git commit信息后,感觉还是麻烦,还要选,想着直接git commit的时候也能规范信息,于是选择使用git hooks中的husky工具来实现,如果提交信息不符合规范会给出错误提示并且不能提交成功。使用husky工具对git commit信息格式化,配置好commit-msg文件后,使用git commit 报错。放到第一行,上边其他信息全部删掉,我这个是之前有文件注释,全部删掉之后就好了。5.使用commit-msg钩子规范化提交信息。4.生成.husky文件夹。...
2022-08-02 18:19:10
2538
4
原创 websocket心跳机制(保活机制)
原理使⽤setInterval和setTimeout实现,每隔⼀段时间就向服务器发送⼀个数据包,告诉服务器⾃⼰还活着,如果服务器也。3.使⽤setInterVal和setTimeout⽅法实现⼼跳。活着就回传⼀个数据包,如果断开,需要客户端重连。1.Websocket连接成功时创建⼼跳检测。2.Websocket接收消息后进⾏⼼跳重置。...
2022-07-26 14:33:44
4152
原创 Js判断数据类型的4种⽅式
Js数据类型es56种数据类型string、number、boolean、object(Data、function、Array)、null、undefined。Es6中新增了⼀种数据类型symbol表示独⼀⽆⼆的值,最⼤的⽤法是⽤来定义对象的唯⼀属性名,⽆论何时都不相等。...
2022-07-26 14:32:45
199
原创 react18项目中引入插件后控制台eslint警告:Failed to parse source map from...
看起来是source map和node_modules的错误,所以我们改一下`webpack.config.js`中的source map配置找到`source map`配置后,在`exclude`中把`node_modules`文件夹添加进去,表示忽略这个文件夹下的文件内容
2022-07-06 16:31:05
1555
2
原创 js去除字符串两边空格不包括换行符,求求你们不要再说用\s了!
明明匹配的是所有,而空字符包括, ,还有!等价于[ \f\n\r\t\v\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u0020\u3000\ufeff]。例如, /\s\w*/ 匹配"foo sdfsdfz."中的’ sdfsdfz’。使用\s字符串两边如果有其他非空格字符也会被去掉,真的无语了,全网都在说用\s去空格,到底能不能分清还有区别呀!正确的是用空格的来表示所以只去除字符串两边空格的正则是而去除字符串两边的空字符才用思路:
2022-07-05 18:38:07
803
原创 html模板字符串绑定事件+传递参数
react components和hooks写多了,基本的事件都不会写了,今天给模板字符串绑定事件,绑定不上了哈哈哈哈,后面注册到window上才实现了,然后传参的时候直接把对象就传过去了,所以函数里变量报错了,后面发现是传递的object因为模板字符串编译后直接变成了[object,object],哈哈哈哈哈哈哈太小儿科了这种错误,虽然很丢人但也许也有人和我一样吧,所以记录一下哈哈哈哈把改成注册事件...
2022-06-27 11:00:16
1166
原创 【antv x6】创建画布报错
在使用antv x6的时候页面报错’不能读取属性位于undefined’,意思就是咱具备width属性的元素是Undefined而目前具有width属性的元素也就是咱们用来渲染的这个contaier元素了,且这个错误还是偶现,所以定位是异步问题,渲染画布的时候绑定的元素还未渲染所以我们把创建画布的操作放到页面渲染之后就可以啦~vue放在mounted里,react放到componentDidMount或者useEffect里~//官方文档写的是componentDidMount,因为react取
2022-05-12 11:25:09
1520
原创 create react app 后配置并启用scss_module带原来的class名
使用create react app 创建项目后,使用以下文件引入sass文件中的className名不生效我们发现页面中根本没有引用成功scss文件中的文件名把creat react app默认sass module 配置项改为true,我们发现文件名生效了,但是class名全部变成了在全局可区分的hash值 ,根本分辨不出当前class名具体是哪个元素因为css-loader默认的哈希算法是[hash:base64],这会将.title编译成._3zyde4l1yATCOkgn-DBWEL
2022-05-10 16:13:30
696
原创 【算法 】判断数组元素是否成对出现
给你一个整数数组。您的任务是创建它们的对,使得每对由相等的数字组成。每个数组元素只能属于一对。是否可以使用所有的整数?写一个函数:函数解(A)如果数组A包含N个整型数,返回是否有可能将所有整型分拆成对使用。给定A=[1,2,2,1],您的函数应该返回True,因为它们是(A[0])。A[3])(两者都有1)和(A[1])。A[2])(两者都有值2)给定A=[7,7,7],你的函数应该返回False,因为你可以生成一对数字7,但你仍然有一个数字7如果A=[1,2,2,3] 你的函数应该返回
2022-05-10 15:21:39
279
原创 少儿编程相关
少儿编程出现背景市面上出现的少儿编程公司大多成立在2015-2017年,那么出现的契机是什么呢1. 全国对小学奥数开始打压(家长也发现小学奥数对思维没有特别大的帮助,所以少儿编程变成了小学奥数的替代品)2.google公司的阿尔法狗挑战中国的围棋冠军柯洁并3:0取胜,人工智能开始兴起3.国务院颁布新人工智能规划,普及编程教育相关编程公司线上编程:编程猫、核桃编程、西瓜创客、边玩边学、学而思编程、猿编程线下:小马王、童程童美那么学编程参加比赛到底能不能对升学有帮助?参加各种竞赛对孩子升学的帮
2022-05-08 16:56:11
921
原创 create react app后webpack配置alias别名
1.先使用 eject 扩展 webpackreact官方脚手架默认是将webpack配置隐藏起来了,在进行配置之前需要将webpack给暴露出来。1.输入命令 npm run eject将webpack.config.js暴露出来2.查找alias配置,设置路径别名 '@': path.resolve(__dirname, '../src'), '@assets': path.resolve(__dirname, '../src/assets'),然后在页面中就能使用@别名代替路径啦
2022-05-07 14:45:56
653
原创 二叉树中序遍历
解题思路一:递归1.递归调用,不断把子孙左节点传入,直到最后一层再无左节点的值2.打印当前节点值2.判断有无右节点,如果有的话重复步骤【1】【2】【1】向函数传入{2,1,3} 这个左子树,发现还有左节点{1}再调用【2】左节点{1}没有子左节点了,退出函数,【3】打印{1}【4】节点{1}没有右子树了,退出函数,代表我们当前左子树遍历完成【5】打印当前节点{2}【5】传入右子树遍历,重复步骤/** * Definition for a binary tree node. * fun
2022-04-24 18:33:33
88
原创 虚拟dom是如何挂载到真实dom上的
一.先使用createElement()方法生成虚拟dom节点createElement(‘ul’, {class: ‘list’}, [ createElement(‘li’, {class: ‘item’}, [‘1’])] )确定VNode的结构class Element { constructor(tagName, props, children) { this.tagName = tagName this.props = props
2022-04-14 23:18:58
780
原创 css实现九宫格,不定宽高百分比(使用padding实现Div高度根据自适应宽度(百分比)调整)
css实现九宫格,但不一定有9个,可能有8个、7个,每两个格子间距是10px,一行放置3个格子,格子宽高比为1:2(最右的面试题) <div class="box"> <div>1</div> <div>2</div> <div>3</div> <div>4</div> <div>5</div> <div>
2022-04-14 23:01:20
957
2
原创 js中new一个对象的过程中发生了什么
New一个对象的过程中发生了什么function Person(name) { this.name = name return name // 值类型或者无返回就返回实例 return { // 引用类型返回此对象 info: name + Image }}let p = new Person()1.先创建一个空对象用来存放实例 let obj = {}2.将构造函数的this指向空对象并执行函数体Let result = Person.call(o
2022-04-14 18:44:19
1982
原创 Vue的异步组件与动态组件
异步组件:vue的一种性能优化的方法,可以实现组件的按需加载组件通过import函数引用,什么时候需要什么时候加载有利于项目的性能优化,提高页面的加载速度路由懒加载就是使用了异步组件的原理规则:使用import引入components: {IsAsyncDemo: () => import(‘./IsAsyncD.vue’)},ex:点击按钮才加载组件<template> <div> <IsAsyncDemo v-i
2022-04-13 23:06:07
1221
3
原创 Vue报错:Root file specified for compilation Vetur(1261)
在vue项目中遇到如下错误module "/Users/lin/Documents/web前端/webpack4-learning/webpack-vue/src/components/IsAsyncDemo.vue"Already included file name '/Users/lin/Documents/web前端/webpack4-learning/webpack-vue/src/components/IsAsyncDemo.vue' differs from file name '/Use
2022-04-13 22:44:48
7272
3
原创 【算法】把数组拍平
1.一层嵌套的数组 - concatconcat方法创建一个新的数组该数组由被调用数组和参数元素组成。如果参数是数组,而数组本身的元素中也包含数组,则元素数组不会被递归展开。如果参数是对象,那么新数组中的元素只是参数对象的浅拷贝。如果参数是字符串、数字或布尔值,则该方法将这些值复制到新数组中。let arr = [1,2,[3,4],5,6]Array.prototype.concat.call([], …arr)Array.prototype.concat.apply([], arr)
2022-04-13 20:37:42
373
原创 JS防抖与节流
防抖 - 将多次调用变成最后一次触发高频事件后,n秒内函数只执行一次如果在相同的时间内再次触发,就要重新计时,保证里边的代码只执行一次防抖函数就是控制事件的触发频率,不能让同样的事件频繁的触发所以会先清掉计时器再重新执行(重点) function debounce(fn, t) { let timeId return () => { // 如果有定时器就清掉 if (timeId) clearTimeout(timeId) ti
2022-04-12 00:09:43
255
原创 【算法】二叉树的先序遍历
二叉树树中每个节点最多只能有两个子节点在js中通常用object来模拟二叉树二叉树为【1,2,3,4,5,6,7】const bt = { val: 1, left: { val: 2, left: { val: 4, left: null, right: null }, right: { val: 5, left: null, right: null } }, right: { val: 3, left: { val
2022-04-10 22:13:28
1177
原创 【算法】最近的请求次数
933. 最近的请求次数写一个 RecentCounter 类来计算特定时间范围内最近的请求。请你实现 RecentCounter 类:RecentCounter() 初始化计数器,请求数为 0 。int ping(int t) 在时间 t 添加一个新请求,其中 t 表示以毫秒为单位的某个时间,并返回过去 3000 毫秒内发生的所有请求数(包括新请求)。确切地说,返回在 [t-3000, t] 内发生的请求数。保证 每次对 ping 的调用都使用比之前更大的 t 值。示例 1:输入:[
2022-04-08 16:21:43
160
原创 【算法】反转字符串
344. 反转字符串编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。示例 1:输入:s = [“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 2:输入:s = [“H”,“a”,“n”,“n”,“a”,“h”]输出:[“h”,“a”,“n”,“n”,“a”,“H”]提示:1 <= s.length
2022-04-06 21:40:56
255
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人