2023-05-13 手写bind、call、apply方法实现 bind、call、apply方法常用于改调用函数并指定函数执行时的上下文(即this关键字的值)以及参数列表。例如将一个类数组对象转换为真正的数组,以便使用数组的方法、Object原型上的toString方法判断数据类型等功能。 阅读全文…
2023-04-29 手写EventHub(发布订阅) EventHub 是一种事件发布-订阅模式的实现。订阅者(Subscriber)把自己想订阅的事件注册(Subscribe)到调度中心(Event Channel),当发布者(Publisher)发布该事件(Publish Event)到调度中心,也就是该事件触发时,由调度中心统一调度(Fire Event)订阅者注册到调度中心的处理代码。 阅读全文…
2023-04-22 Vue3组合式API(Composition API) 组合式 API (Composition API) 是一系列 API 的集合,使我们可以使用函数而不是声明选项的方式书写 Vue 组件。组合式 API 是Vue 3 及 Vue 2.7 的内置功能。对于更老的 Vue 2 版本,可以使用官方维护的插件 @vue/composition-api。 阅读全文…
2023-03-26 JavaScript的事件委托原理 事件委托事件委托是JavaScript中常用的一种事件处理方式,也称为事件代理。它可以让我们在处理多个相似元素事件时,减少重复代码,提高性能和代码可维护性。 阅读全文…
2023-02-11 Hexo博客从Travis-CI迁移到GitHub Actions Hexo博客从Travis-CI迁移到GitHub Actions由于Travis-CI更改了免费政策,系统赠送的 10000 积分用完以后,就无法继续免费使用构建服务了。所以迁移到GitHub Actions。Github Actions每月2000分钟免费额度。 阅读全文…
2023-01-14 手写vue日历组件 手写vue日历组件vue版本vue2,样式和参数参考element-ui的Calendar组件。自动补全上一月和下一月空白日期,支持周起始日设置,单元格日期自定义插槽,自定义右侧头部插槽。坑点:闰年2月29天处理 阅读全文…
2022-11-05 手写Promise.allsettled方法 手写Promise.allsettled方法之前实现过Promsie.all方法,但是all这个方法如果有一个失败了就相当于全部失败了,这种对体验和交互都不友好,Promise.allsettled就是改进版,有失败还会继续执行,等所有的Promsie执行完返回一个对象数组。 阅读全文…
2022-10-22 Debian9安装设置Fail2ban Fail2banfail2ban是一款入侵防御软件,可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。可以防止别人恶意扫描和暴力破解SSH密码。 阅读全文…