关于用react+react router+redux开发多页应用时store的设计问题

发布于 2022-09-07 00:10:42 字数 499 浏览 28 评论 0

最近在学react这个框架,之前只搭过单页应用,现在要用它来搭一个多页的论坛应用,遇到一些问题,求前辈解答。

我现在做到了从服务器获取数据并发起 action 来改变 store 进而重新渲染页面。

先问三个主要问题:
1、许多页面有共享的数据信息,比如说论坛头部简单的用户信息展示,这些信息应该怎么放到 store 中去才不至于刷新、跳转页面等操作重置 store ?
因为页面刷新或新开页面,store 都会被重置,我设计了登录页面登录成功后数据存入 store,并且页面跳转(window.location.href跳转)到论坛主页,然后发现 store 重置了,相当于什么都没干。
是应该把这些共享数据先 loaclstorage 存好之后,在任何会导致页面刷新效果的操作完成后再放到 store 中吗?

2、因为我想做成多页的,所以很多地方没有使用 Link 标签而是用了 a 标签,这样是不是错的?

3、多页模式下,不同的页面的 store 是一样的吗?应该怎么去设计多页应用下的 store?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

稳稳的幸福 2022-09-14 00:10:42

1、store数据应该是从后端获取的然后存储的,当页面刷新。应该重新请求接口。论坛头部信息在刷新的时候数据重新请求,跳转应该是路由跳转,头部那块应该是不动的。
2、Link的本质就是a标签,并且做了拓展。但你用了a去替换Link。这种做法不提倡。
3、不管多页,单页。整个应用全局就一个store!不同页面store肯定不一样。有的可以按业务、有的按组件、有的按路由不固定。

心清如水 2022-09-14 00:10:42

1、当页面刷新或者新打开页面,包括打开一个新的tab,store都会重置。页面跳转应该使用router。如果想要在刷新时,还需要以前的数据,那么可以保存到sessionStorage中。
2、如果入口的url不变,仍然为单页面,使用Linka标签都可以,因为Link最终被渲然为a.
3、我们所谓的多页模式指的是入口url不同,才叫多页。我们的做法是一个入口对应一个entry,也就是一个应用对应一个store.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文