摘要: valtio 是什么 valtio是一个很轻量级的响应式状态管理库,它基于 Proxy 实现,类似于 vue 的数据驱动视图的理念,使用外部状态代理去驱动 React 视图更新,不管在react组件内部还是外面都可以使用。下面提供 valtio 基本用法例子: https://codesandbox 阅读全文
posted @ 2024-01-23 19:59 晨米酱 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 目前JS实现时间格式化有很多种方案,但具体采用哪一种需要看项目需求以及对应的技术栈。下面汇总常见的方式: Date 对象 API Date 对象是 JavaScript 处理日期和时间的基本工具。它提供了一系列方法来获取和设置日期时间的各个部分,以及进行日期和时间的计算。 // ********** 阅读全文
posted @ 2024-01-14 16:00 晨米酱 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 定义 在JavaScript中,迭代器是一种特殊对象,它提供了一种按顺序访问集合元素的机制,并同时记录当前遍历的位置。迭代器必须实现一个名为 next 的方法,该方法返回一个包含两个属性 value 和 done 的对象。其中,value 是迭代的当前值,done 是一个布尔值,表示是否已达到迭代结 阅读全文
posted @ 2024-01-04 22:22 晨米酱 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 在JavaScript中,通过npm(或yarn)管理的package.json文件中,你可以为依赖指定多种格式的版本号。版本号通常遵循语义化版本控制(SemVer),格式为主版本号.次版本号.修订号(MAJOR.MINOR.PATCH)。以下是一些常见的版本号格式: 精确版本(Exact): "1 阅读全文
posted @ 2023-12-05 09:58 晨米酱 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 当标签a设置了跳转方式 target="_blank" 时,点击链接将会在新页面打开链接,新页面可以通过 window.opener访问到原页面 window对象,进行js操作(钓鱼攻击)。针对这个安全漏洞,我们在设置 target="_blank" 的同时,设置 rel="noopener" ,这 阅读全文
posted @ 2023-11-22 09:39 晨米酱 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 压缩是将文件或数据转换为更小的表示形式的过程。它通过使用各种算法和技术,去除文件中的冗余信息,以减小文件的大小。在 Linux系统中,压缩文件是一种常见的操作,它可以减小文件大小来节省存储空间,还可以减少网络传输数据量来节省带宽。在本文中,我将介绍 Linux 下常见的压缩类型和相应的指令。 ## 阅读全文
posted @ 2023-06-06 17:51 晨米酱 阅读(184) 评论(0) 推荐(0) 编辑
摘要: windows上常见的exFAT,NTFS,FAT32 区别 NTFS:最早出现在windowsNT的日志文件系统,有文件加密(权限管理)、磁盘文件压缩(节省磁盘空间)、目录索引(方便快速查找)、支持长文件名(255个字符)、磁盘预警、大容量(根据簇的不同最大容量可以达到16~256TB,但存储文件 阅读全文
posted @ 2023-05-16 16:22 晨米酱 阅读(1737) 评论(0) 推荐(0) 编辑
摘要: 之前对文件和目录的指令与权限有误解(特别是目录这一块),在本文进行记录。 ## 让使用者能进入某目录成为“可工作目录”的基本权限 - 可使用的指令:例如 `cd` 等变换工作目录的指令。 - 目录所需权限:使用者对这个目录至少需要具有 `x` 的权限。 - 额外需求:如果使用者想要在这个目录内利用 阅读全文
posted @ 2023-05-14 10:38 晨米酱 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 从 Windows 到 Ubuntu 系统的转变 如果阅读过我的早期博客,便可知道我曾使用过win、mac及现在的Ubuntu(linux)等主流操作系统。简单评价,mac是适合开发的绝佳选择,但价格较高;而Ubuntu则是妥协之选,但实际开发体验与mac相差无几;win的话胜在用户基数、软件生态和简化的系统操作。如果想在win系统中学习linux 阅读全文
posted @ 2023-04-19 22:53 晨米酱 阅读(202) 评论(1) 推荐(0) 编辑
摘要: Promise 是异步编程的一种解决方案,比传统的回调函数或事件更合理和更灵活。 Promise 方法 Promise的原型方法:then/catch/finally,这三种方法很常用,then用于处理Promise转为fulfilled状态时的代码,catch用于处理Promise转为reject 阅读全文
posted @ 2023-04-13 14:37 晨米酱 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 实现自定义 feed 生成规则的本质是对网页内容进行爬取。而爬取的方式可以分为两种: 通过 API 获取内容,只要知道内容是从哪个 API 获取的,就可以使用 fetch 或 axios 获取内容,并将其转换成 RSS 模板。 通过 HTML 文档获取内容,不同的页面渲染方式需要不同的爬取策略。具体 阅读全文
posted @ 2023-04-02 15:43 晨米酱 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 标题所提到的是常见的前端渲染方式,下面将介绍它们的概念并总结它们的优缺点 SSR (Server-side rendering,服务端渲染) SSR 是指在服务端生成 HTML,将其发送到客户端,客户端只需要进行简单的渲染即可完成页面显示。SSR 的主要优点是可以提高页面的首屏渲染速度和 SEO 的 阅读全文
posted @ 2023-03-29 09:37 晨米酱 阅读(576) 评论(0) 推荐(0) 编辑
摘要: 就目前所知,实现图片懒加载的方法有 IntersectionObserver,getBoundingClientRect,图片的loading属性 IntersectionObserver 原理:视窗(祖先元素)与目标元素相交时触发注册事件 useEffect(() => { // 实现懒加载 co 阅读全文
posted @ 2023-03-23 22:30 晨米酱 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 常见的图片格式类型 SVG (Scalable Vector Graphics):矢量图形格式,可以无限放大而不失真,适合于网页图形和动画等应用。 JPEG (Joint Photographic Experts Group):用于存储彩色或灰度图像,可压缩图片大小,但压缩可能会导致图像质量损失。 阅读全文
posted @ 2023-02-26 15:47 晨米酱 阅读(313) 评论(1) 推荐(0) 编辑
摘要: 优点:内部 dom结构 不向外暴露(可以设置) 网页结构更加简洁,同时外部样式不影响内部,比如html5 中 video 标签就使用了 shadow dom shadow-dom 结构 使用 大致过程: 创建 shadow host 类并继承 HTMLElement 在类的构造函数中创建 shado 阅读全文
posted @ 2022-10-26 13:00 晨米酱 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 本文将介绍webpack的作用、入门使用,以及webpack打包原理 模块开发 javascript诞生之初,就是服务于网页的脚本语言,相较于c++,java等缺少模块开发功能。在不使用webpack工具,javascript文件只能通过在html文件中使用script标签导入同时还要留意导入的顺序 阅读全文
posted @ 2022-09-20 08:32 晨米酱 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 之前就思考过,每天在不同的网站上获取信息,时不时被不相干的信息干扰,一不小心就忘记自己本来要找什么,有没有将不同网站上的信息收集到一个地方上,只专心自己想要的信息呢?之前的想法是通过正向代理爬取信息,但是从零开始搭建环境又不太现实。最近注意到RSS,它的大致用途是订阅网站信息,一旦出现最新消息,就会 阅读全文
posted @ 2022-04-25 22:05 晨米酱 阅读(562) 评论(0) 推荐(0) 编辑
摘要: Array.prototype.getMost = function () { var obj = this.reduce((p, n) => (p[n]++ || (p[n] = 1), (p.max = p.max >= p[n] ? p.max : p[n]), (p.key = p.max 阅读全文
posted @ 2022-02-27 15:38 晨米酱 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 我们知道采用 new 操作符会创建一个对象实例,例如:let p = new Person();;而具体是怎样创建的呢? 实际上会执行下面的三个步骤: 创建一个空对象 这个空对象指向该对象的原型对象 更改该对象的this指向这个空对象(修改 作用域 ) 用代码解释 // 1. 创建一个空对象 let 阅读全文
posted @ 2022-02-26 11:06 晨米酱 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 匹配分组 \num的理解 例子s=<html><h1>lalala<h1></html> re.macth(r"<(.+)><(.+)>.+</\2></\1>") 意思就是,在匹配的过程中,可以在后面引用前面分组所匹配的字符串, 在上述过程中,先匹配到分组html在匹配分组h1所以在之后的括号中可 阅读全文
posted @ 2022-02-24 13:41 晨米酱 阅读(199) 评论(0) 推荐(0) 编辑