Sukka's Blog 标签 JavaScript

标签

JavaScript

共 12 篇文章
技术向约 3.5 千字

用代码和 Git 管理 DNS 记录 —— DNSControl 和 GitHub Actions CI/CD 实践

作为互联网基础设施的基石之一,DNS 也是最脆弱的环节之一。在项目从上线、运营维护的整个生命周期中,DNS 记录的变更和管理是不可避免的。传统上,DNS 记录的管理往往依赖于域名注册商或 DNS 服务商提供的 控制平面,操作不直观、不可复现、容易出错、难以追溯、没有自动化。基础设施即代码(Infrastructure as Code, IaC)无疑为脆弱的 DNS 记录管理给出了一个方向。

技术向约 5.1 千字

2024 年,如何不使用 create-react-app 从头为 React 项目配置 webpack

对于全新的 React 项目来说,一开始就使用 Next.js、Remix、Shopify Hydrogen、Gatsby 等 React 元框架(Meta Framework)是最正确的选择,这些元框架替你解决了路由、数据加载、服务端渲染(SSR)、全静态页面导出(SSG)、边缘计算、打包器和编译器配置。然而,如果你需要迁移现有的、纯客户端渲染(Client-side Rendering)的项目到 React、或者从其他打包器(如 Vite 或 Parcel)迁移走时,即使在 2024 年,webpack 仍然不失为一种选择。

技术向约 3.4 千字

在 JavaScript 中实现和使用 Context

使用过 React 构建应用的开发者对 React Context 一定不会陌生。在 React 的世界中,相比于把 prop 不断透传给下一层子组件(prop-drilling),React Context 可以更优雅地自上而下将数据从父组件传递到深层级的子组件、并确保数据在不同子组件之间保持一致。不过,Context 绝不是仅属于 React,在 JavaScript 中 Context 一样可以大展拳脚。

技术向约 3.9 千字

React 为什么重新渲染

更新(重新渲染)是 React 的重要特性 —— 当用户与应用交互的时候,React 需要重新渲染、更新 UI,以响应用户的输入。但是,React 为什么会重新渲染呢?如果不知道 React 为什么会重新渲染,我们如何才能避免额外的重新渲染呢?

技术向约 3.1 千字

为什么你不应该在 React 中直接使用 useEffect 从 API 获取数据

React 是一个由 Facebook 开源的、可以在任意平台上构建 UI 的 JavaScript 库。在 React 中,一个常见的 Pattern 是使用 useEffect 搭配 useState 发送请求、将状态从 API(React 外部)同步到 React 内部、用于渲染 UI,这篇文章恰恰在向你介绍为什么你不应该直接这么做。

技术向约 1.8 千字

2021 年 JavaScript Promise 性能对比

我们正生活在一个「Any application that can be written in JavaScript, will eventually be written in JavaScript」的时代。作为一门兼具动态性和简单性的语言,JavaScript 已经占领了客户端、服务端,甚至在机器学习中也占据一席之地;不可避免的,异步执行也逐渐成为这门语言不可缺少的一部分。 TL;...

技术向约 5.1 千字

从 Google Analytics 的统计代码说起 —— 谈谈 script 标签的 async 和 defer 属性

之前我在「天下武功,唯快不破 —— 我是这样优化博客的」一文中提到「对于大部分浏览器来说,确保 JS 异步加载和执行的做法其实是在操作 DOM 动态插入 <script async>」,但是并没有给出详细原因。这一次我以 Google Analytics 的统计代码为引子,详细讲讲 <script> 的 async 和 defer 属性、以及它们背后的故事。 拆开 Google Ana...

技术向约 4.4 千字

天下武功,唯快不破 —— 我是这样优化博客的

哪个男孩不想拥有一个速度非常快的博客 之前我也写过少许 关于 Web 性能优化的文章,但是却从未介绍过自己的博客是如何优化的。这次我来水篇文章,罗列一下我的博客的几个零散的优化点。

技术向约 3.4 千字

Node.js 多线程 —— worker_threads 初体验

JavaScript 是一个具有「单线程」特性的「简单」语言,适合完成一些「简单的任务」,比如验证表单、当访客离开页面时改变页面标题和 favicon、或者渲染整个页面、双向绑定与视图更新(等等,这听起来可不像是什么「简单的任务」)。 支持多线程的后端语言常常具有专门的机制在进程之间同步数据,而 Node.js 决定添加多线程支持,就需要一些变通方案了。 Node.js 是「单线程...

技术向约 3.6 千字

将 Hexo 部署到 Cloudflare Workers Site 上的趟坑记录

为了进一步缩短自己的博客的 TTFB,我决定将自己的博客部署到 Cloudflare Workers Site。没想到我会把几天时间花费在折腾这个上。 本文完成于 2020 年 6 月 7 日,Cloudflare Workers Site 已经被弃用并被 Cloudflare Pages 取代,本文部分内容可能已经过时,但是 Cloudflare 那一事无成的技术支持和工单 是...