# 经验之谈

  1. provider 分为 readProvider,walletProvider
  2. json,readProvider,walletProvider,和配置都应该是系统变量不应该放在状态管理
  3. 如果有一个数据是要几个数据的依赖,不要在获取的时候用 await 等待查询,应该在使用到的地方去计算即可
  4. conflux 跟以太坊的用法是不一样的需要注意
  5. 根据 5,所以初始化合约(不管是 readProvider 还是 walletProvider)还是发起交易应该单独封装一个公共方法
  6. 登录状态放 session
  7. 移动端也就是 Dapp 有坑(至少 whoops 是),页面一进去不一定有 window.conflux 对象,可能等一会才有,目前针对移动端采用的是一个 10 秒的轮询查询是否有 window.conflux 对象才进行下一步
  8. 不要对合约进行深拷贝,在 ios 某些版本会有兼容问题
  9. 在获取数据过后不要对数据进行过多的处理,比如除 1e18 等,有可能这个数字不一定是在页面显示(页面上要显示页面自己处理),统一用 bignumber 包一下即可
  10. 个人建议使用发布订阅(有待大家讨论)
  11. 组件不要一层层的传事件传方法,本来页面就有可能要计算,格式化等,在一层层的传更难维护代码了
  12. 涉及到大量的数据格式化和显示,要抽一个公共显示数据的组件
  13. 页面涉及到大量的把合约的数据格式化到页面,并且各有不同且有重复,应有一个关于格式化数据的 utils 文件,页面通过引入的方式来维护
  14. 批量请求其实很简单,务必了解
  15. 项目对网络请求有较高要求 banner 等大图需要对 2x 图压缩
lastUpdate: 3/28/2021, 5:36:44 AM