每周5定时更新,希望小伙伴多提点意见
关于组件:
- 图片组件:对于图片一定需要先自定义自己的图片组件,方便后期的维护修改
- 按钮组件
- 导航栏:导航栏组件的背景色可以用global变量来设置,在打开下个页面之前设置这个参数,然后在返回前个页面的时候再修改回来:这样能做到每个页面的导航栏背景色不一样,如果不想每个页面都写的话需要用到下一个组件
- 页面基础组件:对于android的监听可以放在app.js中或者最外层的index.js中。也可以放在页面基础组件里,让当前页面去监听,退出页面注销监听。同理页面的背景色也可以在这里设置,因为每个app有一定的主色调,在页面消失的方法中设置回来就可以了,其他时候需要修改我们只需要让跳转的时候设置一些global变量就可以。其他的全局变量也可以这样设置。
- 全局属性变量组件:这里面可以存放一些全局需要用到的静态值,比如URL的域名,按钮的颜色等等
- 常用字符串的判断方法:手机号码判断,邮箱判断,身份证判断等
- 样式组件:style.js
- app通用的组件:通用的按钮,文本,动画组件,模态框组件等
- 网络请求:可以用一个参数设置文件搭配使用,这样以后换公司或者项目只需要修改参数配置就可以使用了
- 导航
- 启动页
- 热更新
- 列表组件
- 错误处理:对于app本身的错误处理可以用RN自带的ErrorUtils
ErrorUtils.setGlobalHandler((err) => { let version = '4.0.0'; console.log(err) let message = JSON.stringify({version,err:err.message}) axios.post(HttpUrl.sys.report,{message}).then(res=>{ console.log(res) }).catch(e=>{ console.log(e) }) });
对于接口报错:讲catch中捕获的异常上传到服务器
axios.post(path, Qs.stringify(params), { cancelToken: source.token, // 请求头信息 headers: { 'Accept': 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', userToken, }, // `onUploadProgress` 允许为上传处理进度事件 onUploadProgress: (progressEvent) => { }, // `onDownloadProgress` 允许为下载处理进度事件 onDownloadProgress: (progressEvent) => { }, //设置超时时间 timeout: 10000, //返回数据类型 responseType: 'json' // default }).then((response) => { resolve(response); }).catch((error) => { let message = JSON.stringify({version: '4.0.0', err: error.message, path, params}) axios.post(HttpUrl.sys.report, {message}).then(res => { console.log(res) }) resolve({data: {status: -1}}); })