跳到主要内容

一些库

styled-components

use-immer

classnames

FlexSearch

Lodash

  • Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。 Lodash 的模块化方法 非常适用于:

  • 遍历 array、object 和 string

  • 对值进行操作和检测

  • 创建符合功能的函数

  • Lodash 官网 https://www.lodashjs.com/

source-map-explore 打包优化

1 安装
 pnpm add source-map-explorer -D
  • 2 在 package.json 文件的 script 中添加:"analyze": "source-map-explorer 'build/static/js/*.js'"
  • 3 在终端中先对项目打包:pnpm run build
  • 4 运行命令分析:pnpm run analyze

实现多选功能

import { useState } from 'react'
import { letters } from './data.js'
import Letter from './Letter.js'

export default function MailClient() {
const [selectedIds, setSelectedIds] = useState([])

const selectedCount = selectedIds.length

function handleToggle(toggledId) {
// 它以前是被选中的吗?
if (selectedIds.includes(toggledId)) {
// Then remove this ID from the array.
setSelectedIds(selectedIds.filter((id) => id !== toggledId))
} else {
// 否则,增加 ID 到数组中。
setSelectedIds([...selectedIds, toggledId])
}
}

return (
<>
<h2>Inbox</h2>
<ul>
{letters.map((letter) => (
<Letter
key={letter.id}
letter={letter}
isSelected={selectedIds.includes(letter.id)}
onToggle={handleToggle}
/>
))}
<hr />
<p>
<b>You selected {selectedCount} letters</b>
</p>
</ul>
</>
)
}