javascript – 多页的React-Redux状态形状
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 多页的React-Redux状态形状,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2763字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 多页的React-Redux状态形状](/upload/InfoBanner/zyjiaocheng/718/914294395ae447869014c8a161d0ebcd.jpg)
我正在尝试使用redux设计一个管理面板网站,并对REST资源执行基本的crud操作.我想我已经开始理解redux了,但是我不太确定如何构造状态形状,特别是在每页存储不同的数据时.例如,登录页面将存储与页面不同的数据以编辑用户.
我为我的状态形状提出了以下“模式”:
var schema = {
//Things applicable to the authenticated used
authentication: {
authenticated: true, //True if a user is authenticated
auth_user_id: 2, //ID of the authenticated user
},
//Things applicable to the layout of the application, for example the notification menus that can be toggled on and off
layout: {
},
//Things specific to each page of the application
pages: {
//Login page (eg https://example.com/login)
login: {
isFetching: false, //Is data loading?
},
//Data pertaining to the page that shows list of users (eg https://example.com/users)
userList: {
},
//Data pertaining to the page to edit a particular user (eg https://example.com/users/:id/edit)
userEdit: {
}
},
//Normalized entities are stored here.
entities: {
usersById: {
2:
{ //User ID
id: 2,
first_name:
"Some",
last_name:
"User"
}
}
}
};
然后我会在页面树中为每个“页面”设置一个reducer.这是处理这个问题的正确方法吗?我似乎无法找到任何关于如何构建更大的应用程序的示例或教程,这些应用程序不仅仅是在几个视图之间切换的简单页面.
解决方法:
TL; DR /摘要:是的,您的解决方案似乎与具有重要用户界面组件的应用程序的通用数据架构规范一致.但是,您可能还需要考虑一些内部组件状态.
这是数据结构和软件架构中的一般问题,特别是在用户界面周围.对此没有一个通用的答案;它将始终取决于应用程序的具体情况以及它运行的数据.我可以证明我在多个项目(包括当前的React项目,以及Angular和Backbone)上的专业工作,其数据结构类似于您描述的数据结构 – 即以视图为中心和标准化数据的混合.
早期我遇到了开发Java Swing应用程序的问题,其中问题被构建为组件(视图)层次结构(也称为containment hierarchy)与对象(data)层次结构(不要与class或继承层次结构混淆) – 以及后者(数据)应该反映前者(观点)与否.
我现在更普遍地将问题视为设计具有视图层次结构的数据层次结构.
使部分数据层次结构(在顶级状态/存储中)镜像视图层次结构的一些原因:
>数据非常特定于视图,表示屏幕上的内容,自然语言或用户输入
>数据不会被应用程序的其他区域重用或共享
>数据表示仅限短暂的UI状态,可能缓存几分钟但不是永久缓存
使部分数据层次结构更多与视图层次结构无关且与视图层次结构无关的一些原因:
>减少重复(DRY principle)
>数据将被重用或共享
>数据表示与UI不太紧密相关的长期状态,可能在浏览器存储中重复
特别是对于Redux,一些数据是如此短暂或短暂,以至于它根本不属于顶级状态/存储.这些数据可以保持在组件状态,这也使商店更加苗条和专注.
将部分数据置于组件状态的本地化的一些原因:
>数据是100%视图特定的
>应从应用程序的其他区域隐藏数据/ encapsulated;也许它适用于higher-order component,或者是通用且高度可重用的组件(组件逻辑本身 – 而不是数据)
>数据严格表示短暂的或瞬态的仅UI状态
有趣的博客条目,包括使用顶级商店状态与组件级状态的扩展分析:
> 3 Things I Learned About Working with Data in Redux来自Nick Cantelmi
内容总结
以上是互联网集市为您收集整理的javascript – 多页的React-Redux状态形状全部内容,希望文章能够帮你解决javascript – 多页的React-Redux状态形状所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。