import styles from "./Button.module.css";
function Button({ text }) {
return <button className={styles.btn}>{text}</button>;
}
// module.css
.btn {
color: white;
background-color: tomato;
}

불필요한 사용이 될 수 있음-> useEffect로 조절
useEffect(() => {
// 실행할 코드
}, [지켜 볼 코드]);
지켜 볼 코드가 변화하면 실행할 코드가 실행된다.
import { useEffect, useState } from "react";
function Hello() {
return <h1>Hello~</h1>;
}
function App() {
const [showing, setShowing] = useState(false);
const onClick = () => {
setShowing((prev) => !prev);
};
return (
<div>
{showing ? <Hello /> : null}
<button onClick={onClick}>{showing ? "hide" : "show"}</button>
</div>
);
}
export default App;
import { useEffect, useState } from "react";
function Hello() {
useEffect(() => {
console.log("Created :)");
return () => console.log("Destroyed :(");
}, []);
return <h1>Hello!!</h1>;
}
function App() {
const [showing, setShowing] = useState(false);
const onClick = () => {
setShowing((prev) => !prev);
};
return (
<div>
{showing ? <Hello /> : null}
<button onClick={onClick}>{showing ? "hide" : "show"}</button>
</div>
);
}
export default App;
function Hello() {
useEffect(() => {
console.log("Created :)");
return () => console.log("Destroyed :(");
}, []);
return <h1>Hello!!</h1>;
}
function Hello() {
function byFn() {
console.log("bye ;(");
}
function hiFn() {
console.log("Hi :)");
return byFn;
}
useEffect(hiFn, []);
return <h1>Hello!!</h1>;
}
then
useEffect(() => {
fetch(
`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`
)
.then((response) => response.json())
.then((json) => {
setMovies(json.data.movies);
setLoading(false);
});
}, []);
async-await
const getMovies = async () => {
const response = await fetch(
`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`
);
const json = await response.json();
setMovies(json.data.movies);
setLoading(false);
};
async-await more shortcut
const getMovies = async () => {
const json = await (
await fetch(
`https://yts.mx/api/v2/list_movies.json?minimum_rating=8.8&sort_by=year`
)
).json();
setMovies(json.data.movies);
setLoading(false);
};
function component는function이고 뭔가를return한다. 그리고 screen에 표시된다.
이와달리,
class component는class로 react component로 부터확장되고, screen에 표시된다.