Hook은 그냥 JavaScript 함수이지만, 두 가지 규칙을 준수해야 한다.
import React, { useState } from 'react'
function Counter () {
// ① OK
const [value, setValue] = useState(0)
// ② 반복문 X
for (let i = 0; i < 10; i++) {
var [value, setValue] = useState(0)
}
// ③ 조건문 X
if (x<10) {
var [value, setValue] = useState(0)
}
// ④ 중첩된 함수 X
function inner () {
const [value, setValue] = useState(0)
}
...
}
function Form() {
// 1. name이라는 state 변수를 사용하세요.
const [name, setName] = useState('Daniel');
// 2. Effect를 사용해 폼 데이터를 저장하세요.
useEffect(function persistForm() {
localStorage.setItem('formData', name);
});
// 3. surname이라는 state 변수를 사용하세요.
const [surname, setSurname] = useState('Drinkwater');
// 4. Effect를 사용해서 제목을 업데이트합니다.
useEffect(function updateTitle() {
document.title = name + ' ' + surname;
});
// ...
}