在构建复杂的 React 应用时,状态管理是一个不可避免的核心问题。从组件的本地 state 到跨组件共享的全局状态,选择一个合适的库来优雅地处理这些数据流至关重要。在我们最近的某个项目中,就选择了 Jotai 作为状态管理解决方案。

什么是 Jotai?

Jotai 是一个为 React 设计的原始(primitive)且灵活(flexible)的状态管理库。它的核心思想是 原子化(atomic)。与 Redux 或 Zustand 等库将所有状态集中存储在一个大的 store 中不同,Jotai 将状态分解为一个个独立的、微小的单元,称为 原子(atom)

你可以将 atom 想象成 React useState 的全局版本,但它更强大,支持派生状态、异步操作以及与 React Suspense 的集成。

阅读全文 »

1
2
输入 URLDNS 解析 → TCP 三次握手 → 发送 HTTP 请求 → 服务器处理响应 →  
浏览器解析 → 构建 DOM/CSSOM → 合成渲染树 → 布局与绘制 → TCP 四次挥手
阅读全文 »

电影院里很久没有出现这样的景象了。

零点首映时,中年人们拖着疲惫的身躯,从城市的各个角落中钻出来,趁着夜色摸到电影院。

在排队进场之前,他们有的还在回复工作内容,有的还在叮嘱父母哄睡孩子,更多的人则打开搜索引擎,搜索当年戛然而止的记忆。

只有那些穿在外套里面,皱皱巴巴、微微变色的球衣,证明着他们不曾忘记的青春。虽然有些衣服明显不再合身,有些号码都已经斑驳、脱落,但是他们还是穿着来了。

200斤的“樱木花道”就站在40岁的“流川枫”身前,后面排队的是发际线堪忧的“仙道彰”……

当手绘的湘北五虎线稿跃然于大银幕上时,电影院中鸦雀无声,五个少年迎面“走起来”时,电影院中窸窸窣窣抽纸巾的声音提醒着观众:

“那个回忆,他们回来了。”

阅读全文 »

环境

Hexo 5.4.0,NexT 8.14.1

Highlight.js高亮问题

1
2
3
4
5
6
7
8
9
highlight:
enable: true
auto_detect: false
line_number: true
tab_replace: ' '
wrap: true
hljs: false
prismjs:
enable: false

启用Highlight.js后,代码块高亮效果无效。

阅读全文 »

脚手架文件结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
├── node_modules 
├── public
│ ├── favicon.ico: 页签图标
│ └── index.html: 主页面
├── src
│ ├── assets: 存放静态资源
│ │ └── logo.png
│ │── component: 存放组件
│ │ └── HelloWorld.vue
│ │── App.vue: 汇总所有组件
│ │── main.js: 入口文件
├── .gitignore: git版本管制忽略的配置
├── babel.config.js: babel的配置文件
├── package.json: 应用包配置文件
├── README.md: 应用描述文件
├── package-lock.json:包版本控制文件
阅读全文 »

传统请求及缺点

  • 传统的请求都有哪些?
    • 直接在浏览器地址栏上输入URL。
    • 点击超链接
    • 提交form表单
    • 使用JS代码发送请求
      • window.open(url)
      • document.location.href = url
      • window.location.href = url
      • ….
  • 传统请求存在的问题
    • 页面全部刷新导致了用户的体验较差。
    • 传统的请求导致用户的体验有空白期。(用户的体验是不连贯的)
阅读全文 »

JavaScript通常有3种声明变量的方式

  1. var和let -> 只存在作用域的区别
  2. const -> 只读
  3. 直接赋值,不声明
阅读全文 »
0%