自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 收藏
  • 关注

原创 Promise并行期约

永远不拒绝返回的期约,而是会等所有输入期约全部落定后兑现,这个返回的期约解决为一个对象数组,其中每个对象都对应一个期约,且都有一个status属性,值为fulfilled或rejected。实际上比刚才描述的稍微更灵活一些,其输入数组可以包含期约对象和非期约值,如果这个数组的某个元素不是期约,那么它就会被当成一个已兑现期约的值,被原封不动地复制到输出数组中.接收一个期约对象的数组作为输入,返回一个期约,如果输入期约中的任意一个拒绝,返回的期约也将拒绝,否则,返回的期约会以每个输入期约兑现值的数组兑现.

2025-03-24 15:19:23 193

原创 JavaScript中的call方法相关知识点

thisArg 参数的选择:.call() 中的 thisArg 参数是可选的。方法用于调用函数,并接受一个参数列表,第一个参数指定函数内部的 this 指向,后续参数作为函数的参数传入。函数方法绑定:ES6 中的箭头函数可以在定义时绑定 this,避免了 .call() 或 .apply() 的使用需求。不同于 .apply():.apply() 与 .call() 类似,区别在于参数传递方式不同。接受一个参数数组作为第二个参数,而 .call() 则接受一个参数列表。将函数作为目标对象的临时属性。

2025-02-23 18:37:28 239

原创 Vue3插槽 Slots​

具名作用域插槽的工作方式也是类似的,插槽 props 可以作为 v-slot 指令的值被访问到:v-slot:name=“slotProps”。将这个概念拓展一下,可以想象的是,一些组件可能只包括了逻辑而不需要自己渲染内容,视图输出通过作用域插槽全权交给了消费者组件。插槽内容无法访问子组件的数据。Vue 模板中的表达式只能访问其定义时所处的作用域,这和 JavaScript 的词法作用域规则是一致的。实际上,这已经和作用域插槽的最终代码编译结果、以及手动编写渲染函数时使用作用域插槽的方式非常类似了。

2025-02-14 10:42:01 972

原创 Vue3计算属性

想象一下我们有一个非常耗性能的计算属性 list,需要循环一个巨大的数组并做许多计算逻辑,并且可能也有其他计算属性依赖于 list。更重要的是,如果在模板中需要不止一次这样的计算,我们可不想将这样的代码在模板里重复好多遍。计算属性默认是只读的。更改快照是没有意义的,因此计算属性的返回值应该被视为只读的,并且永远不应该被更改——应该更新它所依赖的源状态以触发新的计算。若我们将同样的函数定义为一个方法而不是计算属性,两种方式在结果上确实是完全相同的,然而,不同之处在于计算属性值会基于其响应式依赖被缓存。

2025-02-10 14:22:01 529

原创 Vue3响应式基础

当你在模板中使用了一个 ref,然后改变了这个 ref 的值时,Vue 会自动检测到这个变化,并且相应地更新 DOM。:由于 Vue 的响应式跟踪是通过属性访问实现的,因此我们必须始终保持对响应式对象的相同引用。不同的是,Vue 能够拦截对响应式对象所有属性的访问和修改,以便进行依赖追踪和触发更新。是,与普通变量不同,你可以将 ref 传递给函数,同时保留对最新值和响应式连接的访问。只有代理对象是响应式的,更改原始对象不会触发更新。因此,使用 Vue 的响应式系统的最佳实践是仅使用你声明对象的代理版本。

2025-02-10 11:38:23 914

原创 JavaScript面向对象

在编程的世界中,有一种思想是非常重要的,那就是——面向对象思想。掌握了这种思想,意味着你不再是一个编程菜鸟,已经开始朝着开发者的目标迈进。那么,到底什么是面向对象思想?说到这个可以给大家说说这个东西的由来。以前的编程,都是面向过程的。那么什么又是面向过程呢?以前在网上看到一个说法,觉得形容得很好,借用一下。大体如下:如果现在有个人叫你把大象放到冰箱里,我们使用面向过程如何做呢?我们可以分成以下几个步骤:把冰箱门打开。把大象放到冰箱里面。把冰箱门关上。然后我们依次调用这几个函数就行了。

2025-02-08 14:07:30 878

原创 网络-navigator.sendBeacon

总之,navigator.sendBeacon 是一个方便的浏览器 API,用于在页面卸载或关闭时发送异步请求,适用于发送统计数据、日志记录、表单提交等场景。

2025-02-07 09:31:09 843

原创 前端数据上报方法方式

我们可以使用 sendBeacon 发送数据,这一方法既能保证数据可靠性,也不影响用户体验,如果浏览器不支持该方法,则可以降级使用同步的 ajax 发送数据。

2025-02-07 09:23:24 648

原创 JS中Boolean 的妙用

Boolean 作为 JavaScript 的一个内置构造函数,可以作为一个简单的类型转换工具,在ts中,借助Boolean可以将某个值转换为布尔类型,从而避免一些类型报错。其实,filter(Boolean)生效的原因非常简单,因为Boolean本身就是js中的一个构造函数,我们可以将它理解为下面的伪代码。在JavaScript中,所有的值都可以被隐式转换为布尔值,在这种转换中,值会被分类为“真值”或“假值”。显示转换是指通过明确的代码,主动江一中数据类型转换为另一种类型,这种方式通常是直观的,可控的。

2025-02-05 17:07:49 374

原创 如何禁止别人调试前端页面代码?

需要强调的是,尽管可以采取上述措施来增加调试的难度,但完全禁止别人调试前端页面代码是不可能的。禁止别人调试前端页面代码是一个相对复杂且不完全可靠的任务,因为前端代码最终需要在用户的浏览器中执行,而用户拥有对浏览器的完全控制权。在前端开发中,虽然无法彻底防止别人调试和查看前端页面的代码,但确实有一些方法可以增加调试的难度,提高安全性,虽然CSP不是直接用来防止调试的,但它可以增加页面的安全性,使调试者更难进行恶意操作。这可以增加调试的难度,因为调试者需要在代码执行时捕获这些动态注入的代码。

2025-01-15 15:51:52 458

原创 如何在浏览器中执行100万个任务,并保证页面不卡顿?

浏览器的JavaScript运行时基于时间循环机制,在每一个事件循环中,浏览器会处理任务队列中的任务,如果某个任务执行时间过长,就会阻塞后续的任务,导致页面卡顿,将大量任务拆分为多个批次,并使用setTimeout或requestAnimationFrame,我们可以在每一帧刷新间隔中分布任务,避免长时间的单一任务阻塞。如果任务非常密集且计算量大,考虑使用Web Workers,这是一中更强大的解决方案,它允许我们在浏览器的后台线程中运行JavaScript,从而避免阻塞主线程,保证页面的流畅相应。

2025-01-13 15:45:15 376

原创 如何监听Vuex数据的变化?

【代码】如何监听Vuex数据的变化?

2025-01-08 14:21:37 571

原创 this的指向问题

在JavaScript和Vue.js的上下文中,this的指向是由函数的调用方式决定的。理解this的指向对于编写正确的Vue组件和JavaScript代码至关重要。

2024-12-27 17:49:23 393

原创 git revert

是 Git 中的一个命令,用于创建一个,该提交会撤销(或“反转”)之前某个特定提交所做的更改。这个命令非常有用,因为它允许你在不改变项目历史的情况下,撤销某个提交的更改效果。git revert之后。

2024-12-27 16:52:06 931

原创 void 0与undefined的区别

总结来说,虽然 void 0 和 undefined 在大多数情况下可以互换使用,但在需要明确返回 undefined 或避免潜在变量名冲突的情况下,使用 void 0 是更好的选择。在 JavaScript 中,void 0 和 undefined 都可以用来表示一个未定义的值,但它们在语法和语义上有细微的差别。表达式:void 0 是一个表达式,void 运算符会忽略其操作数并返回 undefined。类型:typeof void 0 也返回 “undefined”。

2024-12-23 16:21:25 386

原创 git stash 的文件如何找回

不过,这个方法相对复杂且不一定总是有效。如果你想要找回并应用某个stash的内容到当前工作目录,可以使用git stash apply命令,并指定stash的标识符。如果你想要在应用stash的同时删除它,可以使用git stash pop命令。如果你想查看某个特定stash的详细内容,可以使用git stash show命令,并指定stash的标识符(例如stash@{0})。如果你确定已经成功找回了stash的内容,并且不再需要这个stash记录,可以使用git stash drop命令来删除它。

2024-12-19 17:22:23 1371

原创 nodemon禁止执行解决方法

你遇到的错误是因为 Windows PowerShell 的执行策略配置为禁止执行未签名的脚本。这是为了安全起见,防止恶意脚本的运行。通过修改执行策略,你应该能够解决当前遇到的问题。然而,始终要注意执行来自不可信来源的脚本时的安全风险。在开始菜单中搜索“PowerShell”,然后右键点击“Windows PowerShell”,选择“以管理员身份运行”。这将显示当前的执行策略,可能是 Restricted,这是阻止脚本运行的原因。请注意,这将再次阻止未签名的脚本运行。

2024-11-25 14:43:52 212

原创 echarts大量数据性能优化处理

这种方法能够很好展示部分区间的数据,但是缺点也很明显,很难看到全局的数据,而且要重复的请求和监听,这对于大屏来说无疑不太合适。这会确保所有的数据都有相同的被选择为样本的机会。折线图在数据量远大于像素点时候的降采样策略,开启后可以有效的优化图表的绘制效率,默认关闭,也就是全部绘制不过滤数据点。数据过滤:数据中存在一些无关的信息或数据噪音,服务端对数据进行过滤,只需要保留有用的数据即可,剔除无效的数据。数据聚合:对于特别密集的数据点,使用聚合算法在源头对数据降采样,进行数据聚合,减少渲染的数据点数量。

2024-11-18 11:32:01 2706

原创 Git主干分支master开发优缺点

通常开发团队的成员1天至少一次地将代码提交到主干分支,在到达发布条件时,从主干拉出发布分支通常为(release),用于发布,若发现缺陷,直接在主干上修复,并根据需要cherry pick到对应版本的发布分支,然而,需要注意的是,主干分支开发也要求团队成员具备较高的责任感和自律性,以确保代码的质量和稳定性。:如果项目中大部分工作都是直接在主干上进行,且功能分支较少,那么使用主干分支开发是合理的。:在需要快速迭代和频繁发布的情况下,主干分支开发能够减少分支管理带来的开销,使得新功能能够更快地集成到产品中。

2024-11-16 14:39:30 575

原创 Vue开发风格

vue编码风格指南

2024-11-14 16:06:07 534

原创 Vue2父子通讯

Vue 会在内部为 pageSize prop 添加一个更新监听器,当子组件更新这个 prop 的值时(通过触发一个形如 this.$emit(‘update:propName’, newValue) 的事件),父组件中的 pageSize 数据属性也会被更新为新的值。当子组件触发 update:pageSize 事件并传递一个新的值时,父组件中通过 .sync 修饰符绑定的 pageSize 数据属性会被更新为这个新的值。这样,父组件中的 pageSize 就会反映子组件中所做的更改。

2024-11-14 14:49:19 289

原创 JS类型检测

这种高阶函数的设计方式使得你可以轻松地创建其他类型的检测函数,例如。等,只需调用 isType 并传入相应的类型名称即可。特定类型检测函数 isBoolean。

2024-11-06 14:19:32 315

原创 HTML基础知识点

HTML语义化是指根据内容的结构和含义(内容语义化),选择合适的HTML标签(代码语义化),以更好地表达内容的意义和层次。通俗来讲,就是用正确的标签做正确的事情。语义化的优点SEO友好:语义化的标签让搜索引擎更容易理解网页内容,有利于搜索引擎优化提高可访问性:列如屏幕阅读器,可以通过语义化标签更好地理解和朗读网页内容,帮助视障用户浏览网页。内容组织:语义化标签有助于搜索引擎爬虫和其他自动化工具更好地抓取和索引页面内容,甚至生成目录。

2024-11-06 10:49:43 605

原创 sourceTree使用脚本一键push代码到gerrit

在gerrit,我们无法直接把代码push到对应的分支。需要把代码push到 HEAD:refs/for/branch,review通过后再submit到分支。所以无法直接使用sourceTree上的推送按钮来push代码。但是可以通过自定义操作和脚本来实现这一功能。需要说明的是参数那一栏选择上面编写好的脚本,一般放在项目根目录下。直接点击提交代码就可以把代码push上去了。配置sourceTree。保存后修改后缀名为sh。

2024-09-21 14:39:57 496

原创 el-table隐藏表头多选框

【代码】el-table隐藏表头多选框。

2024-09-19 15:13:38 305

原创 application/x-www-form-urlencoded与multipart/form-data与application/json的区别

text/plain是纯文本数据,这里不做解释,Navigator.sendBeacon会使用。前后台完成数据交互的方式只有两种:一是form表单提交,二是ajax提交。form表单可通过属性设置编码类型,默认值为:application/x-www-form-urlencoded;ajax可通过属性设置编码类型,默认值也是:application/x-www-form-urlencoded;

2024-09-09 15:46:59 880

原创 前端form表单+ifarme方式实现大文件下载

【代码】前端form表单+ifarme方式实现大文件下载。

2024-09-08 14:35:34 536

原创 loading-button

【代码】loading-button。

2024-09-04 11:35:17 184

原创 大文件上传vue插件vue-simple-uploader

https://www.cnblogs.com/xiahj/p/vue-simple-uploader.html

2024-09-04 11:31:39 524

原创 vue2子组件生命周期被调用两次

目前解决办法是改成了这种写法,改为这种不会出现加载两次子组件生命周期的问题。el-tabs带有缓存效果。不知道是不是因为这个。

2024-08-21 17:02:56 376

原创 el-ui 导航菜单重复点击报错问题解决

重复点击菜单报错 NavigationDuplicated: Avoided redundant navigation to current location: xxxxx。路由文件.js最下边加入这段代码。

2024-07-29 20:34:00 437

原创 如何修改node_modules里的代码

多半是没有找对文件,例如 我们修改的是 lodash里面的某个API,一般我们先找个 lodash里的 package.json 文件,然后看 main(入口文件) 的指向,如果没有 package.json 文件,那应该就是默认的 index。这种很好懂,就是直接进 node_modules 中,找到那个包的代码,并修改对应的地方的代码,然后重启项目,就能达到我想要的效果。如果在,就说明补丁生效了。其实这个时候你本地已经使用到了你修改后的代码了,但问题是怎么让你的同事也同步到你的修改后的代码。

2024-07-10 15:39:52 1413

原创 LoadMoreSelect触底加载与远程搜索

【代码】LoadMoreSelect触底加载与远程搜索。

2024-07-07 20:08:29 175

原创 前端引入新的依赖文件中含有mjs文件时

随着Node.js的流行,JavaScript的使用范围也不断扩大,而随之而来的就是对不同文件后缀的需求。在这篇文章中,我们将探讨.js、.mjs和.cjs这三种常见的JavaScript文件后缀之间的区别。当你在Node.js环境中使用.mjs文件时,需要在package.json文件中显式地指定"type": “module”,以告诉Node.js解析器该项目使用的是ES模块。.js是JavaScript的默认文件后缀,也是最常用的文件类型。使用.mjs文件时,需要在HTML文件中通过。

2024-07-02 16:55:29 1908

原创 el-date-picker组件自定义可选择的时间范围

在这个示例中,我们将type属性设置为daterange,以便选择一个日期范围。在使用el-date-picker组件时,如果您想要限制用户只能选择今天和前72小时作为时间范围,可以通过设置disabledDate属性来实现。这个属性接受一个函数,该函数接收一个日期对象,并返回一个布尔值,指示该日期是否应该被禁用。disabledDate方法是一个自定义函数,它接收一个日期对象,并返回一个布尔值。这个函数检查传入的日期是否早于3天前或晚于今天,如果是,则返回true,表示该日期应该被禁用。

2024-06-24 14:35:59 1312 1

原创 对象的扩展

如果对象的方法使用了取值函数(getter)和存值函数(setter)则name 属性不实在该方法上面,而是在该方法属性的描述对象的get和set属性上面,返回值是方法名加上get和get。Object.assign复制的属性是有限制的,只复制源对象的自身属性(不复制继承属性)。ES5引入了Object.keys方法,返回一个数组,成员是参数对象自身的(不包含继承的)所有可遍历属性的键名。也就是说,如果源对象某个属性的值是对象,那么目标对象复制得到的是这个对象的引用。Object.assign方法实行的。

2024-06-19 15:26:13 888

原创 HTTP教程

HTTP (,HyperText Transfer Protocol)是一种用于,超媒体信息系统的应用层协议。HTTP 是万维网(WWW)的数据通信的基础,设计目的是确保客户端与服务器之间的通信,是互联网上最常用的协议之一。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法,通过 HTTP 或者 HTTPS 协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

2024-06-17 16:36:15 755 1

原创 element table 点击某一行中按钮加载

在Element UI中,实现表格(element-table)中的这种功能通常涉及到数据处理和状态管理。1.表格组件:使用el-table组件,并且为每一行的按钮添加事件监听器,如@click。

2024-06-13 11:35:58 795

原创 echarts 数据重新加载,原数据依然存在图表上

监听数据是否真正变化了。

2024-06-05 14:19:00 1204

原创 前端实现分页

totalItems计算属性返回数据列表的总长度,totalPages计算属性根据totalItems和pageSize计算出总页数。在这个示例中,我们定义了一个名为items的数据属性,它包含了要分页的数据列表。同时,可以使用计算属性来处理分页逻辑,例如计算总页数、当前页码等。handlePageChange方法会在分页组件触发page-change事件时被调用,并更新currentPage数据属性。请注意,这只是一个基本的示例,您可能需要根据您的具体需求进行调整,例如添加加载状态、错误处理等。

2024-06-04 17:29:30 230

JavaScript语言精粹.pdf

JavaScript语言精粹

2025-02-14

编写可维护的JavaScript.pdf

编写可维护的JavaScript

2025-02-14

css揭秘.pdf

css揭秘

2025-02-14

HTML5标签列表.pdf

HTML5标签列表

2025-02-14

CSS3属性速查表.pdf

CSS3属性速查表

2025-02-14

javascript-promise-book.pdf

javascript-promise-book

2025-02-14

JavaScript_DOM编程艺术.pdf

JavaScript_DOM编程艺术

2025-02-14

JavaScript基础教程(第8版).pdf

JavaScript基础教程(第8版)

2025-02-14

JavaScript权威指南

JavaScript权威指南

2025-02-14

前端开发WebGL编程指南

WebGL编程指南

2025-02-11

解决前端Web性能权威指南

Web性能权威指南

2025-02-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除