Dva: 【请教】使用了dva之后,在组件内部写异步逻辑是否合理

Created on 16 Jun 2017  ·  4Comments  ·  Source: dvajs/dva

在components中,有一个组件A,该组件在componentDidMount之后需要去异步请求一些数据。
请问,官方推荐的做法是什么?
是组件与数据必须分离开,所有的异步操作都需要放在effect里执行?还是允许组件内部自己维护state以及异步逻辑?

Most helpful comment

既然使用了dva管理数据和状态,推荐不要在组件内部再进行单独的数据请求了。代码模块的指责和拆分在团队协作中更加重要,组件只关心数据展示和由组件触发动作的行为,具体动作实现建议统一交由model去做。这样做还有个好处就是项目中不同层的技术的替换和更新,如果展示层需要升级UI,不用关心数据操作,想将redux切换为其他状态管理库也可以不关心组件展示层面的事

All 4 comments

我写的时候,异步操作都是经过effect中去请求。至于state,我有些组件里面会组件维护一个的

如果你是自己在组件内部异步获取远程数据,用 dva 就没有了太多的意义。因为,并不是说没有 dva 就做不了事情。

dva 的优势之一,就是你可以把你的业务逻辑统一放到 model 里面去处理,方便维护与团队协作。

既然使用了dva管理数据和状态,推荐不要在组件内部再进行单独的数据请求了。代码模块的指责和拆分在团队协作中更加重要,组件只关心数据展示和由组件触发动作的行为,具体动作实现建议统一交由model去做。这样做还有个好处就是项目中不同层的技术的替换和更新,如果展示层需要升级UI,不用关心数据操作,想将redux切换为其他状态管理库也可以不关心组件展示层面的事

我需要在组件加载完成后,用d3去渲染chart,可是不知道应该如何做

Was this page helpful?
0 / 5 - 0 ratings