Next.js:条件包装的代码拆分

我是Next.js新手。

我想知道如何实现以下目标:

我的目标是为现有页面创建某种后端/管理区域。我的想法是在_app.js内创建一个auth包装器,该包装器将始终检查本地存储中是否存储了auth令牌。如果是这样,否则,将仅显示访问的页面。否则,在成功通过身份验证后,我想注入一些编辑功能。

现在,我担心性能问题。由于React将被捆绑,所有的编辑功能都不会捆绑到代码中吗?即使是普通用户也不会使用它们,而仅被管理员考虑。

当组件变得很大时,这对我来说是个问题,因为大多数用户将下载该代码,而他们永远都不会碰。

我知道Next.js具有开箱即用的代码拆分功能,但是按照我的理解,Next.js会按页面拆分代码,并且由于编辑器组件将注入每一页,因此每个页面都在那里吗?

因此,基本上,我如何将编辑器组件拆分为一个文件,该文件仅在auth组件的条件返回true时才能下载?

我阅读了有关React.lazy()的文章,但是我不确定这是否适用于此类用例。另外,我很好奇,如果适用相同的概念,我怎么能只用React而不是Next.js来做同样的事情。

感谢所有帮助!

hy19851223 回答:Next.js:条件包装的代码拆分

好吧,经过一番修补,我想我自己找到了解决方法。

首先,我尝试使用React.lazy(),但是Next.js尚不支持(确切地说,ReactDOMServer不支持)。

所以我从Next.js找到了dynamic方法,它似乎在做同样的事情。我创建了一个简单的包装程序,该包装程序将在几秒钟后将条件设置为true,并且能够观察到在几秒钟后出现的对动态加载的组件的网络请求,这意味着它可以正常工作。 ?

不过,我对此没有太多经验。如果有人找到了首选的方法,请告诉我!

本文链接:https://www.f2er.com/3116864.html

大家都在问