Как безопасно заменить getInitialProps на getServerSideProps / getStaticProps

Следующее предложение хорошо знакомо всем нам: You should not use getInitialProps, but getServerSideProps instead. Я уже создал свое приложение, используя getInitialProps и теперь я сталкиваюсь со следующим вопросом: "Должен ли я заменить getInitialProps на getServerSideProps?", и если да, как мне сделать это правильно, не повредив мое приложение?

Сегодня я использую getInitialProps в нескольких важных местах:

  1. По моему обычаю _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));
  1. В нескольких HOC для страниц: проверьте, что пользователь аутентифицирован (в противном случае перенаправление), инициализируйте хранилище redux, если пользователь аутентифицирован, получение информации о пользователе.

Как я могу заменить getInitialProps на getServerSideProps?

Любой совет будет оценен, спасибо

0 ответов

Другие вопросы по тегам