1.0.0 • Published 4 years ago

react-natve-fast-app v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

react-native-fast-app (RN 项目快速开发基础库)

Installation

npm install react-native-fast-app --save

or yarn add react-native-fast-app

功能点

  • 支持快捷访问AsyncStorage
  • 支持可配置的Http请求框架
  • 灵活的基础控件(无感知多屏蔽适配)
  • 不依赖任何第三方原始库

用法

  • 数据存储RFStorage

    • 最多10行代码实现一个可持久化的数据存储管理类(包括library的引入代码)
       export const RNStorage = {// RNStorage 自定义数据存储对象
           token: undefined, // 自定义属性
       };
       RFLibrary.init(RNStorage, () => {//初始化RNLibrary->Storage
           //从此以后就可以随意访问RNStorage中的变量了
       }, Assets, '1.0');
  • 支持可配置的Http请求框架

    • 一切基于配置(默认配置可选,自由设定),配置示例:多平台配置示例

        RFApi.default = {
           baseUrl: '', // 默认的BaseUrl
           timeout: false, // 设置支持的超时时长(ms)
           httpLogOn: true, // 是否打印Http请求日志
           contentType: ApiConst.CONTENT_TYPE_JSON,
           isConnected: MDCNative.networkConnected,
           headerSetFunc: (headers, request) => {
               //在这里设置公共header参数
           },
           paramSetFunc: (params, request) => {
               //在这里设置公共params参数
           },
           parseDataFunc: (result, request, callback) => {
               //指定当前app的特定数据解析方式
           }
        };
    • 发送请求模板

         let url = 'v1/account/login/';
         let param = {phone: '18600000000', authCode: '123456'};
         let header = {Authorization: "Basic Y3Rlcm1pbmF......HcVp0WGtI"};
         let callback = () => (success, jData, msg) => {//请求结果回调
              if (success) {
                 showToast(JSON.stringify(jData))
              } else {
                 showToast(msg)
              }
         };
      
         // 示例只为是为了展示有哪些参数可以设置,真正的请求通常不用设置这么多参数
         RFHttp().url(url)
             .param(param)
             .header(header)
             .internal()
             .rawData()
             .pureText()
             .timeout(10000)
             .extra({tag: 'xx'})
             .contentType('text/xml')
             .cacheEnable([true|false])
             .execute(method,callback)
             .resendRequest(data, callback)
             .loadingFunc((loading)=> showLoading('请求中,请稍候...', loading))
             .[formJson|formData|formEncoded]()
             .[get|post|put|patch|delete|options](callback);
    • 灵活的基础控件

         RFImage
         RFText
         RFView
         RFTouch
         RFlatList
         
         RFImage 非全路径在线图片则依赖图片资源BaseUrl的设置
         可在使用前如下配置:
         RFLibrary.init(null, null, baseImageUrl);

    详细使用方法请参考example中的示例

1.0.0

4 years ago