0.1.40 P1-2: UI渲染效率memo化4处 (NpcRow/NewsList/groupedEntries/specialtyId)
This commit is contained in:
@@ -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) => (
|
||||
|
||||
Reference in New Issue
Block a user