### useState
React本体に関数コンポーネント専用の保存領域を作成してもらい、そこにあるデータを読み書きできる
			const[count, setCount] = useState(0);
			return (
				<div onClick={()=>setCount(count+1)}>{count}</div>
			);
複数の値を扱うときは、複数のuseStateを使う
			const[count, setCount] = useState(0);
			const[isRed, setIsRed] = useState(false);
			return (
				<div 
					style={isRed? {color: 'red'}: null}
					onClick={() => {
						setCount(count+1);
						setIsRed((count+1)%3 === 0);
				}}
				>
			{count}
			</div>
			);
hooksをifやfor文の中で使用してはいけない
### useMemo
useMemoは単純に値を保存するためのhook
			const Calculator = () => {
				const calcResult = useMemo(() => expensiveFunc(), []);
				return <div>{calcResult}</div>
			}
### useCallback
useCallback(func, []) と省略した書き方ができる
			const Button = React.memo((props) => {
				return <button onClick={props.onClick}>Click Me</button>
			});
			const App = () => {
				const onClick = useCallback(() => alert('Hi!'), []);
				return <Button onClick={onClick}/>
			}
### useEffect
コンポーネントのレンダリング後に実行される
			const Message = () => {
				const elem = document.querySelector('#message');
				console.log(elem);
				useEffect(() => {
					const elem = document.querySelector('#message');
					console.log(elem);
					elem.innerText = "Hello!"
				});
				return <div id="message"></div>
			}
### useRef
useStateの参照版。useRefを使うことでReact本体側に値を保存でき、オブジェクトでラップされる
			const Message = () => {
				const divRef = useRef(null);
				useEffect(() => {
					divRef.current.innerText = 'Hello!';
				}, []);
				return <div ref={divRef}></div>
			}
実装したい内容に応じて、Hookを使い分けるってことか。
 
					 
