如何搭建一个RN的app

每周5定时更新,希望小伙伴多提点意见

关于组件:

  1. 图片组件:对于图片一定需要先自定义自己的图片组件,方便后期的维护修改
  2. 按钮组件
  3. 导航栏:导航栏组件的背景色可以用global变量来设置,在打开下个页面之前设置这个参数,然后在返回前个页面的时候再修改回来:这样能做到每个页面的导航栏背景色不一样,如果不想每个页面都写的话需要用到下一个组件
  4. 页面基础组件:对于android的监听可以放在app.js中或者最外层的index.js中。也可以放在页面基础组件里,让当前页面去监听,退出页面注销监听。同理页面的背景色也可以在这里设置,因为每个app有一定的主色调,在页面消失的方法中设置回来就可以了,其他时候需要修改我们只需要让跳转的时候设置一些global变量就可以。其他的全局变量也可以这样设置。
  5. 全局属性变量组件:这里面可以存放一些全局需要用到的静态值,比如URL的域名,按钮的颜色等等
  6. 常用字符串的判断方法:手机号码判断,邮箱判断,身份证判断等
  7. 样式组件:style.js
  8. app通用的组件:通用的按钮,文本,动画组件,模态框组件等
  9. 网络请求:可以用一个参数设置文件搭配使用,这样以后换公司或者项目只需要修改参数配置就可以使用了
  10. 导航
  11. 启动页
  12. 热更新
  13. 列表组件
  14. 错误处理:对于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}});
                    })

     

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值