import { useEffect } from 'react';
import { **useLogin** } from './useLogin'; // useLogin 훅을 import
function Component() {
const { loggedIn } = **useLogin**(); // 로그인 상태를 가져옴
useEffect(() => {
if (!loggedIn) {
// 로그인하지 않은 경우, 특정 작업을 수행
// do something..
}
}, [loggedIn]); // loggedIn 값이 변경될 때마다 useEffect가 실행됨
}import { useState } from 'react';
// 커스텀 훅에서 컴포넌트를 반환
function useLogin() {
const [loggedIn, setLoggedIn] = useState(false);
// 로그인 상태에 따라 반환되는 UI를 컴포넌트로 정의
const LoginComponent = () => {
return (
<div>
<button onClick={() => setLoggedIn(true)}>Login</button>
{!loggedIn && <p>Please log in</p>}
</div>
);
};
// 로그인 상태에 따른 로직과 컴포넌트 반환
if (loggedIn) {
return <div>Welcome, you are logged in!</div>;
} else {
return <LoginComponent />;
}
}
function App() {
const **LoginUI** = useLogin(); // 커스텀 훅을 호출하여 반환된 UI 컴포넌트
return (
<div>
{**LoginUI**}
</div>
);
}import { withLoginComponent } from './withLoginComponent';
const Component = withLoginComponent(() => {
// 고차 컴포넌트에서 어떤 처리 후에 아래 인사말을 렌더링
return <>안녕하세요.</>;
});