React 项目的开发中一般是怎样实现数据模型管理的?

2016-05-04 12:15:17 +08:00
 narukow

从后端获得的数据,经常要在前端按需做格式化处理,例如金额加上"元",时间戳数字转成成 xx 年 xx 月 xx 日等。目前是每次获取数据后都用手写的方法去做批量处理。 感觉为了提高效率,必需要有一个"model"来集中管理数据,实现例如 js 类型转换、格式化输出、数据校验等等。请教有什么现成的轮子能实现这种 model 呢? 还是说我应该抛弃 model -> view 这种思想? 一般在 React 项目中怎样管理数据比较科学?

3158 次点击
所在节点    React
4 条回复
hxtheone
2016-05-04 13:02:08 +08:00
感觉 model -> view 的思想的确不太适合现在的 react 开发, LZ 可以看一下 redux, 尝试一下 redux 中 action -> store -> view 的数据流

比如你需要的请求数据, 类型转换, 格式化这些操作, 可以放在 action 里, 然后更新 store 中数据, 最后 view 用来对 store 中的数据做一个展示的作用.

你可以看一下 redux 文档中对 action, reducer 和 store 这几层的区分, 感觉即使没有明确的 model, 也能比较优雅的管理数据
narukow
2016-05-04 15:46:15 +08:00
看来还是必须学习下 redux
不知有什么轮子能配合统一实现类型转换、格式化这类机制呢
ChefIsAwesome
2016-05-04 16:07:34 +08:00
按你举的例子,格式化时间戳之类的东西就应该放 view 层,写(找)几个公用的 util 函数就是了。 react 本身是组件化的东西,天知道哪天你需不需加个不需要转换格式的组件,到时候你怎么办。

从你想着 “这些组件需求一样,我给他们一样格式的数据” 开始,你就是在想继承了,你就错了。

性能问题完全可以通过把你的 util 函数 memoize 解决 。
narukow
2016-05-04 23:54:16 +08:00
感谢,非常有启发!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/276222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX