0.1.40 P1-2: UI渲染效率memo化4处 (NpcRow/NewsList/groupedEntries/specialtyId)

This commit is contained in:
2026-09-13 14:12:44 +08:00
parent dc970ff13b
commit 2c7596cec7
3 changed files with 129 additions and 112 deletions
+3 -2
View File
@@ -1,5 +1,5 @@
import { useGameStore } from '../store'
import { useMemo, useState } from 'react'
import { useMemo, useState, memo } from 'react'
const CAT_NAME: Record<string, string> = {
birth: '诞庆',
@@ -61,6 +61,7 @@ export default function ChroniclePanel() {
if (!world) return null
const battles = world.state.battles.slice().reverse()
const battle = battles.find((b) => b.id === battleId)
const groupedEntries = useMemo(() => grouped(entries), [entries])
return (
<div>
@@ -99,7 +100,7 @@ export default function ChroniclePanel() {
))}
</div>
<div className="chronicle-list">
{grouped(entries).map((g) => (
{groupedEntries.map((g) => (
<div key={g.year}>
<div className="ch-yearbar">{g.year} <span className="dim2">{g.items.length} · {statOf(g)}</span></div>
{g.items.map((e) => (