Если вы не используете GraphQL, Gatsby преимущественно просто использует React SSR и настраиваемую конфигурацию webpack с Reach Router и немного клея, чтобы склеить все это вместе.
У вас может быть абсолютно отдельная конфигурация Webpack, которая выводит в вашу public
папку и настраивает ваш хост / развертывание для маршрутизации всех ваших нестатических c маршрутов к записи вашего приложения.
Вы также можете использовать Gatsby для генерации всех этих динамических c страниц с сочными запросами на стороне клиента, и вы в основном получаете бесплатные c точки входа скелета для каждой из ваших страниц, например:
const useMounted = () => {
const [isMounted, setIsMounted] = useState(false)
useEffect(() => {
setIsMounted(true)
}, [])
return isMounted
}
const SomeComponent = props => {
const isMounted = useMounted()
return isMounted
? <div>Mounted client-side component</div>
: <SomeComponentSkeleton />
}
Фактически это просто предотвращает проблемы с гидратацией, которые возникают, если вы возвращаете null
при рендеринге на стороне сервера, а затем возвращаете компонент на стороне клиента. Вы также можете использовать isMounted
для запуска любого кода, который использует window
и др.