保护私有反应组件

Posted

技术标签:

【中文标题】保护私有反应组件【英文标题】:Protecting private react components 【发布时间】:2020-10-06 07:23:55 【问题描述】:

我正在开发一个使用 laravel API 的单页应用程序,但我有一个问题。在 SPA 中,除非我执行私有路由,否则浏览器会继续下载受私有路由“保护”的组件。所以,我一直在搜索,我发现了代码拆分的概念,我想,我可以隐藏代码拆分私有的组件吗?如果没有,我可以用其他方式吗?因为,虽然我使用 JWT auth 保护 API 中的数据,但我不想暴露私有区域,例如管理面板等,即使它没有 API 数据。

【问题讨论】:

是的,您可以使用代码拆分来保护代码,因为捆绑只会在该路由触发时下载,您应该根据条件阻止。 我明白了。但是我仍然可以通过浏览器搜索一个未经过身份验证的拆分组件吗? 不,你不能,那是一些尚未下载的捆绑包的一部分。这就是代码拆分的全部想法。 即使我假装我已通过身份验证操作捆绑包,也无法加载受保护的组件? (抱歉问了这么多次,我想确定我确实明白了) 【参考方案1】:

我想你是要求根据路由器拆分代码,它会根据需要下载吗?如果是,

在 react 中你可以使用 React.lazy 和 Suspense

https://reactjs.org/docs/code-splitting.html

【讨论】:

我想他已经经历过了,只是想知道他是否可以使用它来达到预期的结果。 感谢 Siraj 对问题的更多解释。

以上是关于保护私有反应组件的主要内容,如果未能解决你的问题,请参考以下文章

反应路由器 - 受保护的路由组件不起作用

使用 redux 保护的路由和身份验证反应路由器 v4

反应中具有动态 URL 的私有路由

反应路由器重定向在私有路由中不起作用

在if块中反应不渲染组件

Angular 7:基于产品构建:属性“服务”是私有的,只能在“组件”类中访问