Chapter 10 - use client side components for state

This commit is contained in:
2023-12-21 21:09:51 +01:00
parent 01fc574c38
commit 2fbe08bbed
2 changed files with 17 additions and 8 deletions

15
app/like-button.js Normal file
View File

@@ -0,0 +1,15 @@
'use client';
import { useState } from 'react';
export default function LikeButton() {
const [likes, setLikes] = useState(0);
function handleClick() {
setLikes(likes + 1);
}
return (<button onClick={handleClick}> Like ({likes}) </button>)
}

View File

@@ -1,4 +1,4 @@
import { useState } from 'react'; import LikeButton from './like-button';
function Header({ title }) { function Header({ title }) {
return <h1>{title}</h1> return <h1>{title}</h1>
@@ -7,12 +7,6 @@ function Header({ title }) {
export default function HomePage() { export default function HomePage() {
const names = ['Ada Lovelace', 'Grace Hopper', 'Margaret Hamilton']; const names = ['Ada Lovelace', 'Grace Hopper', 'Margaret Hamilton'];
const [likes, setLikes] = React.useState(0);
function handleClick() {
setLikes(likes + 1);
}
return ( return (
<div> <div>
<Header title="Develop. Preview. Ship." /> <Header title="Develop. Preview. Ship." />
@@ -21,7 +15,7 @@ export default function HomePage() {
<li key={name}> {name} </li> <li key={name}> {name} </li>
))} ))}
</ul> </ul>
<button onClick={handleClick}> Like ({likes}) </button> <LikeButton />
</div> </div>
) )
} }