// src/hooks/useOnServer.ts
import { useIsSSR } from "@react-aria/ssr";
/**
* useIsSSR is another hook that returns true if on server-side.
* in the browser it logs 'Client', on the server 'Server'
* (btw the package also offers a SSRProvider to wrap your `<App />` with.
*/
export default function useOnServer() {
const isServer = useIsSSR();
console.log(isServer ? "Server" : "Client");
}
这里如何使用它:
// src/pages/home.tsx
import useOnServer from "src/hooks/useOnServer";
export default function Home() {
// boom!
useOnServer();
return <p>hurray! it worked!</p>
}
1条答案
按热度按时间tzdcorbm1#
实际上你可以在服务器端使用钩子。
一般来说,钩子只是普通的功能,问题是,一旦你试图访问只存在于浏览器中的东西,例如
window
,localStorage
,等等,服务器就会辞职,因为它知道这是一个客户端专用的任务。这里如何使用它:
这是同构编码的全部功能。你可以。
这就像一个滴答作响的定时炸弹💣MeteorJS可能是第一个提出同构框架的(或者说它是我几年前使用的第一个)
显然,它需要一点🧠并且有它的学习曲线,但是好处比补偿更多。享受编码你的第一个同构钩子并且让我们知道如果你决定开源它!🍀