Как безопасно заменить getInitialProps на getServerSideProps / getStaticProps
Следующее предложение хорошо знакомо всем нам:
You should not use getInitialProps, but getServerSideProps instead
. Я уже создал свое приложение, используя
getInitialProps
и теперь я сталкиваюсь со следующим вопросом: "Должен ли я заменить getInitialProps на getServerSideProps?", и если да, как мне сделать это правильно, не повредив мое приложение?
Сегодня я использую
getInitialProps
в нескольких важных местах:
- По моему обычаю
_app.js
заreact-redux
:
class MyApp extends App {
static async getInitialProps({ Component, ctx }) {
return {
pageProps: {
...(Component.getInitialProps
? await Component.getInitialProps(ctx)
: {})
}
};
}
render() {
const { Component, pageProps, store } = this.props;
return (
<>
<Provider store={store}>
<Component {...pageProps} />
</Provider>
</>
);
}
}
export default withRedux(initStore)(withReduxSaga(MyApp));
- В нескольких HOC для страниц: проверьте, что пользователь аутентифицирован (в противном случае перенаправление), инициализируйте хранилище redux, если пользователь аутентифицирован, получение информации о пользователе.
Как я могу заменить getInitialProps на getServerSideProps?
Любой совет будет оценен, спасибо