V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
narukow
V2EX  ›  React

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

  •  
  •   narukow · 2016-05-04 12:15:17 +08:00 · 3306 次点击
    这是一个创建于 3118 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2016-05-04 23:54:16 +08:00
    hxtheone
        1
    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
        2
    narukow  
    OP
       2016-05-04 15:46:15 +08:00
    看来还是必须学习下 redux
    不知有什么轮子能配合统一实现类型转换、格式化这类机制呢
    ChefIsAwesome
        3
    ChefIsAwesome  
       2016-05-04 16:07:34 +08:00
    按你举的例子,格式化时间戳之类的东西就应该放 view 层,写(找)几个公用的 util 函数就是了。 react 本身是组件化的东西,天知道哪天你需不需加个不需要转换格式的组件,到时候你怎么办。

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

    性能问题完全可以通过把你的 util 函数 memoize 解决 。
    narukow
        4
    narukow  
    OP
       2016-05-04 23:54:16 +08:00
    感谢,非常有启发!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2836 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:26 · PVG 16:26 · LAX 00:26 · JFK 03:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.