Skip to content

Commit 45285cd

Browse files
committed
better starging point for lesson
1 parent d8f2d2f commit 45285cd

File tree

2 files changed

+31
-27
lines changed

2 files changed

+31
-27
lines changed

react/core/08-rendering-performance/lecture/BrowseUsers.tsx

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useState, useId, memo, useTransition, useCallback } from 'react'
1+
import { useState, memo, useTransition, useCallback } from 'react'
22
import { useUsers, type UserType } from './useUsers'
33
import { Card } from '~/Card'
44
import { Heading } from '~/Heading'
@@ -7,7 +7,7 @@ import { Heading } from '~/Heading'
77
// https://vercel.com/blog/how-react-18-improves-application-performance
88

99
export function BrowseUsers() {
10-
const allUsers = useUsers() // generates 1000s of users
10+
const allUsers = useUsers(1000) // generate 1000 user objects with random "likes"
1111

1212
const [users, setUsers] = useState(allUsers)
1313
const [minLikes, setMinLikes] = useState(0)
@@ -42,7 +42,7 @@ export function BrowseUsers() {
4242
onChange={(e) => filterUsers(parseInt(e.target.value))}
4343
/>
4444
<div>
45-
Users: <b className="text-slate-800">{users?.length}</b>
45+
Showing: <b className="text-slate-800">{users?.length}</b> Users
4646
{/* {pending && '...'} */}
4747
</div>
4848
</div>
@@ -72,15 +72,19 @@ export function BrowseUsers() {
7272
// }
7373
//
7474
// const UserList = memo(({ users, editUser }: Props) => {
75-
// return users.map((user) => {
76-
// return (
77-
// <div key={user.id} className="flex gap-6 bg-slate-100 p-4">
78-
// <div className="flex-1">{user.name}</div>
79-
// <div className="flex-1">Liked Vacations: {user.likes}</div>
80-
// <button className="button" onClick={() => editUser(user.id)}>
81-
// Edit User
82-
// </button>
83-
// </div>
84-
// )
85-
// })
75+
// return (
76+
// <>
77+
// {users.map((user) => {
78+
// return (
79+
// <div key={user.id} className="flex gap-6 bg-slate-100 p-4">
80+
// <div className="flex-1">{user.name}</div>
81+
// <div className="flex-1">Liked Vacations: {user.likes}</div>
82+
// <button className="button" onClick={() => editUser(user.id)}>
83+
// Edit User
84+
// </button>
85+
// </div>
86+
// )
87+
// })}
88+
// </>
89+
// )
8690
// })
Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
const RECORDS = 1000
1+
import { useMemo } from 'react'
22

33
export type UserType = {
44
id: number
55
name: string
66
likes: number
77
}
8-
const users: UserType[] = []
98

10-
for (let i = 0; i < RECORDS; i++) {
11-
const id = i + 1
12-
const likes = Math.floor(Math.random() * 10)
13-
const user = {
14-
id,
15-
name: `User ${id}`,
16-
likes,
17-
}
18-
users.push(user)
19-
}
9+
export function useUsers(count = 1000) {
10+
const users: UserType[] = useMemo(() => {
11+
return [...new Array(count).keys()].map((n) => {
12+
const id = n + 1
13+
const likes = Math.floor(Math.random() * 10)
14+
return {
15+
id,
16+
name: `User ${id}`,
17+
likes,
18+
}
19+
})
20+
}, [count])
2021

21-
export function useUsers() {
2222
return users
2323
}

0 commit comments

Comments
 (0)