- 博客(30)
- 收藏
- 关注
原创 前端深拷贝和浅拷贝
深拷贝是指创建一个新的对象,并将原始对象的值和引用都复制到新对象中。深拷贝会创建一个新的对象,并将原始对象的所有值和引用都复制到新对象中。因此,如果原始对象的值发生变化,新对象的值不会随之变化。浅拷贝是指创建一个新的对象,并将原始对象的值复制到新对象中。浅拷贝不会复制原始对象的引用,因此,如果原始对象的值发生变化,新对象的值也会随之变化。
2023-11-30 17:02:03
265
原创 使用dagreD3绘制流程节点(vue3+ts)附全代码,粘贴直接可用
【代码】使用dagreD3绘制流程节点(vue3+ts)附全代码,粘贴直接可用。
2023-11-30 11:36:49
2131
8
原创 如何fock github上的开源项目
7. 最后,您可以在GitHub上创建一个Pull Request(PR),将您的更改提交给Element Plus的原始仓库。一旦完成,您将被重定向到您的GitHub账号下的Element Plus仓库页面。4. 现在,您可以在本地克隆您的Element Plus仓库副本。这将在您的GitHub账号下创建一个Element Plus的副本。您可以使用任何适合您的IDE或文本编辑器打开克隆的仓库。将 "your-username" 替换为您的GitHub用户名。这将把您的更改推送到您的GitHub仓库。
2023-08-17 17:53:05
387
原创 前端插件封装,如何将插件打包成npm包,
开发过程中,我们经常自己二次封装UI组件,或者自己封装一些方便开发的插件,为了方便团队成员也可以使用我们封装的插件,可以将插件单独打包成npm包,并在项目的package.json中配置好插件的信息,这样,在项目npm install安装依赖的时候,就可以将插件顺便安装下来,并引用。以下是我在开发过程中,二次封装element-plus,并单独打包成npm包引用的示例。这样就可以在项目下载依赖的时候,将插件的依赖包下载到项目中并使用。,将其打成npm压缩包,在此之前我们需要进行一些配置。
2023-08-17 17:46:35
1441
原创 前端导入模块的方法(全)
4. UMD:UMD(Universal Module Definition)是一种兼容多种模块系统的通用模块定义规范。它可以同时支持 CommonJS、AMD 和全局变量导入的方式。3. AMD:AMD(Asynchronous Module Definition)是一种用于浏览器端异步加载模块的模块系统。1. CommonJS:CommonJS 是 Node.js 使用的模块系统,它使用。2. ES6 模块:ES6 模块是现代 JavaScript 的标准模块系统,它使用。关键字来导入和导出模块。
2023-08-10 11:05:33
632
1
原创 在node环境中,require引入文件的过程
4. 加载文件:一旦找到文件,Node.js会将该文件加载到内存中,并执行其中的代码。时,你需要指定要引入的文件的路径。相对路径是相对于当前文件的路径,而绝对路径是从根目录开始的完整路径。语句时,Node.js会解析指定的文件路径,并尝试找到对应的文件。它通常用于Node.js环境中,用于导入其他JavaScript文件或模块。你可以将返回的对象赋值给一个变量,然后在你的代码中使用它。1. 确保Node.js环境:首先,确保你在Node.js环境中运行代码,因为。5. 返回导出对象:如果被引入的文件使用。
2023-08-09 17:41:55
1849
原创 前端页面自适应(等比例缩放)
以上写法有一个bug,就是如果页面的宽高比例较大时,底部会出现空白,大家可把页面body的颜色调节成和页面颜色相同的颜色,页面看起来会比较舒服。
2023-07-14 18:13:04
3413
1
原创 如何在HTML里面使用Vue组件(包含递归组件)
2、组件使用时的标签名字和传参时使用的命名不能用驼峰,需要用“-”连接,如图;1、子组件必须有一个根元素,如图;希望本次的分享对大家有所帮助!
2023-07-14 17:49:03
4753
1
原创 如何在原生HTML里面使用VUE(保姆级教学)
上面是在原生HTML里面引入vue的方法,其他的同理,如:elementUI、ant Desgin Vue等,都可以用类似的方式引入到原生HTML里。这样就可以在html里面使用Vue了,下期我将分享在html里面使用Vue组件~成功引入vue后,我们就可以在html文件里使用vue,下面是示例;将上面代码添加到html的head里,即可全局使用vue的方法;(2)将搜索到的内容全选复制项目的vue.js文件里,如图;(3)在index.html里面引入;)复制到浏览器,并搜索;(1)将CDN的路径(
2023-07-14 16:49:41
28549
7
原创 JavaScript中的操作符(史上最全)
如果条件表达式为true,则返回结果表达式的值,否则返回冒号后面的值。- 加法操作符(+):用于加法运算,如果两个操作数都是数字,则执行加法运算,如果其中一个操作数是字符串,则将另一个操作数转换为字符串后进行字符串拼接。- 右移操作符(>>):用于将一个数的二进制数向右移动指定的位数,如果是正数,则在左侧添加0,如果是负数,则在左侧添加1。):用于逻辑非运算,将操作数取反,如果操作数为真,则返回假,如果操作数为假,则返回真。- 减等于操作符(-=):用于将右侧的值减去左侧的变量,并将结果赋给左侧的变量。
2023-06-15 10:34:38
1240
原创 亮灯算法+例题详解
在Traffic Light算法中,进程被分配为“红色”、“黄色”或“绿色”状态,分别对应“停止”、“谨慎前进”和“前进”。在上面的代码中,我们使用setTimeout模拟计算平方和的任务,并使用一个锁来保证每个进程或线程在计算平方和时都是互斥的。每个进程或线程负责计算一部分数字的平方和,然后将结果返回给主进程或线程,最终将所有结果相加即可得到整个序列的平方和。总的来说,亮灯算法是一种非常有用的同步技术,可以用于各种并发编程场景,以确保多个进程或线程之间的安全访问共享资源。
2023-06-14 17:14:06
184
原创 VUE中的可配置脚本文件以及npm install之后发生了什么
这可以确保在不同的环境中安装相同的软件包版本,从而确保项目的稳定性。这些脚本文件可以用于执行各种任务,例如构建应用程序、检查代码风格、运行测试、启动开发服务器等。通常用于确保软件包可以正确安装和运行,并且可以在版本更新前进行额外的检查。这些脚本可以用于执行各种任务,例如编译代码、生成文档、运行测试、提交代码到版本控制系统等。通常用于确保软件包可以正确安装和运行,并且可以在发布前进行额外的检查。:用于在提交代码之前运行的脚本文件。文件,则使用该文件中列出的确切版本号安装依赖项,否则安装最新版本。
2023-06-14 10:44:11
394
原创 前端ExcelJS设置某一列的数字格式
当前端要导出表格时需要设置时间或者重量以及金钱的数字格式,可以运用worksheet.getColumn('需要进行格式转换的列数').numFmt来进行数字的格式转换,具体的格式也可以参考下图中的单元格格式中的数字格式。
2023-06-05 17:58:05
3352
原创 JS柯里化
在上面的例子中,getRandomBetween函数接收两个参数,然后我们通过柯里化,将其变成一个只需要传递一个参数的函数,这样在后续使用中,我们只需要传递第一个参数,就可以立即得到一个1到10之间的随机数。在参数复用中,我们可以用柯里化的方式来把一些固定的参数提前传递给函数,然后在实际调用时再传递剩余的参数,从而减少代码重复,提高代码的复用性。在这里,curriedAdd是一个柯里化的函数,它把一个接收两个参数的函数变成了两个接收单一参数的函数,这样我们就可以通过链式调用来实现多参数的传递。
2023-05-25 22:02:45
204
1
原创 JavaScript数据结构和构造函数(全)
在 JavaScript 中,可以使用 Set 类来创建集合,并使用 add() 方法向集合添加元素,使用 has() 方法来检查集合是否包含元素。数组(Array):是 JavaScript 中最常用的数据结构,它是一组有序的值的列表,每个值都有对应的索引。在 JavaScript 中,可以使用 Map 类来创建映射,并使用 set() 方法向映射添加元素,使用 get() 方法获取元素。图(Graph):是一组由节点和边组成的网络结构,其中节点表示网络中的对象,边表示两个节点之间的连接。
2023-05-22 09:27:20
404
1
原创 前端关于TCP的面试题(带答案)
TCP的三次握手是建立连接时的操作,客户端向服务端发送SYN包,服务端接收到后回复一个ACK和一个SYN包,客户端再回复一个ACK包,建立连接。这些操作是为了确保双方都能够建立和关闭连接,并且完成数据的传输。TCP协议是一种可靠的、面向连接的协议,它能够保证数据传输的可靠性和正确性,但是传输效率比UDP协议要低,因为TCP协议需要进行握手、挥手、流量控制、拥塞控制等操作。TCP协议是一种面向连接的、可靠的、基于字节流的传输层协议,它主要用于在网络上进行数据传输,可以保证数据传输的可靠性。
2023-05-17 17:49:29
322
1
原创 ant desgin vue 中的表格分页实现(详解)
其中包括需要显示的每页条数、分页条数是否可调、当前页码、总条数等信息。在配置中,我们还可以通过。函数中,我们可以处理翻页的逻辑,并重新请求数据以更新表格。在上面的代码中,我们给 a-table 组件传递了。属性指定一个函数来处理页码改变的事件。
2023-05-15 14:16:46
7558
3
原创 JS中常用的排序算法
在实际应用中,常用的排序算法有快速排序和归并排序,因为它们的时间复杂度相对比较低,而且对于大规模的数据排序效果比较好。2. 选择排序: 选择排序算法是将数组分成两个部分,第一部分是有序的,第二部分是无序的。每一轮排序中,取出未排序部分的第一个元素,将它插入到已排序部分的正确位置。1. 冒泡排序: 这是一种比较简单的排序算法,在每一轮比较中,将相邻的元素进行比较,如果它们之间的顺序不正确,则交换它们的位置。5. 归并排序: 归并排序算法也是利用分治的思想,将问题分解成若干个子问题,并解决这些子问题。
2023-05-10 18:10:28
153
原创 Vue--diff算法(详解)
Vue的diff算法是用来比较虚拟DOM的差异性的算法,通过比较前后两个虚拟DOM的差异,然后根据差异进行最小化更新,从而避免重新渲染整个页面,提高了页面的性能。在新旧虚拟节点的比对过程中,为了提高比对效率,需要为新旧虚拟节点创建映射表,将新旧节点的对应关系记录下来,方便后续比对过程中的查找和匹配。1. key:表示每个节点的唯一标识,在新旧虚拟节点的比较过程中用于判断节点是否相同,如果没有指定key,则会使用节点的索引作为key。1. nodeOps:用于操作真实DOM节点的方法,如创建、删除、插入等。
2023-05-10 17:50:37
1094
原创 前端结构赋值详解
这会将 `person` 对象中的 `name`,`age` 和 `city` 属性分别赋值给 `name`,`age` 和 `city` 变量。注意,我们使用了别名 `address` 来指代 `person` 对象中的 `address` 属性,并且使用了嵌套的结构赋值来提取 `city` 属性。如果需要在变量之前声明它们,可以使用 `let` 或 `const` 关键字。这会将 `obj` 对象中的 `prop1` 和 `prop2` 属性分别赋值给 `prop1` 和 `prop2` 变量。
2023-05-09 15:37:06
348
1
原创 JS对象属性方法
10. Object.assign(target, ...sources) - 将源对象的所有可枚举属性复制到目标对象。3. Object.getOwnPropertyDescriptor(obj, prop) - 返回对象属性的描述符。4. Object.getOwnPropertyDescriptors(obj) - 返回对象所有属性的描述符。9. Object.entries(obj) - 返回对象所有可枚举属性名和属性值的数组。7. Object.keys(obj) - 返回对象所有可枚举属性名。
2023-05-09 14:02:19
117
1
原创 Vue双向数据绑定原理
在这三个部分中,Observer是最核心的部分,其原理是通过递归遍历数据对象的每个属性,并为其添加getter/setter,当属性被读取或者修改时,能够触发相应的回调函数,从而实现数据的监听和更新。为了解决这个问题,Vue提供了虚拟DOM和异步更新等技术,从而优化了数据绑定的效率。1. Observer:数据监听器,能够对数据对象的每个属性进行监听,当数据发生变化时,能够触发相应的回调函数。2. Watcher:观察者,将数据对象的属性与模板指令进行绑定,当数据发生变化时,能够触发相应的更新操作。
2023-05-09 09:11:09
282
1
产品流程态势图-原生HTML引入Vue.js
2023-07-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人