1:
const router = useRouter();
const user = await getUser();
useEffect(() => {
if (!user) {
router.push("/log-in");
}
});
}```
2:
```export default async function Page() {
const user = await getUser();
if (!user) {
redirect("/log-in");
}
}```
I believe 2 responds with 30X response code to client's first request, forcing client to send second request? vs. in 1, the client is not forced to send followup request. So #1 seems to have same semantics as #2, but strictly more efficient. Is that correct?