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