V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rufeng008
V2EX  ›  程序员

React Native 项目快速开发库,超实用!

  •  
  •   rufeng008 · 2020-06-28 09:42:18 +08:00 · 2253 次点击
    这是一个创建于 1644 天前的主题,其中的信息可能已经有所发展或是发生改变。

    分享一款超实用的,RN 快速开发库:react-native-easy-app 。一款为 React Native App 开发提供基础服务的纯 JS 库(支持 IOS & Android),可以为开发者开发项目提供强有力的支持,可以大幅度提高编码的效率,特别是在项目搭建初期,至少可以为开发者减少 30%的工作量。

    由于前面的文章已经做过介绍,在这里就不详细介绍了,通过本开源库,你可以有以下“高级的操作”:

    另附有多个不同版本的 Demo 供大家参考用法: Sample Sample_Mobx Sample_Redux

    以下为 Sample_Redux 示例程序的 UI 部分截图:

    redux_demo.png

    开源库中也有详细的 README 说明文档,如下图:欢迎大家使用,感谢 Star ! 是不是想进一步了解一下啦?那赶紧点击链接 react-native-easy-app 进去看看吧?

    RN_easy-app.jpg

    9 条回复    2020-06-29 10:06:06 +08:00
    qile1
        1
    qile1  
       2020-06-28 12:13:03 +08:00 via Android
    我想问问为啥图片看不到,是不是需要爬墙后才能?
    metrue
        2
    metrue  
       2020-06-28 12:36:22 +08:00
    我自己觉得 iCloud 同步是个刚需
    wxsm
        3
    wxsm  
       2020-06-28 13:16:05 +08:00 via iPhone
    不好意思,我看了你的项目。但是不太明白:

    1. “可以像访问内存对象一样访问 AsyncStorage”解决的问题是什么?为什么要这么做?
    2. “只需要几十行代码就能实现,一个完整的 app 与服务器的 Http 请求交互”跟我直接用 axios 之类的 Lib 有什么区别?
    3. “一行配置 + 基础组件的使用就即可以实现,UI 自动屏幕适配”跟我直接自定义一个响应式单位有什么区别?

    注:响应式单位,如:const pt = PixelRatio.roundToNearestPixel(px / (DesignWidth / DeviceWidth));

    因为我本身用 RN 也不少,所以我看你的描述觉得很疑惑,你的 lib 到底能帮助人解决什么问题?
    rufeng008
        4
    rufeng008  
    OP
       2020-06-28 13:22:38 +08:00
    @qile1 不太清楚图片为啥时不时就丢了,可能是 V2EX 的原因吧,一时能显示,一时不能显示,你可以直接点击库的链接跳转到 github 上看,其实,也是 github 的 readme 文件的截图^_^。
    rufeng008
        5
    rufeng008  
    OP
       2020-06-28 13:23:34 +08:00
    @metrue 没太懂你说的 iCloud 同步是啥意思。
    wolfan
        6
    wolfan  
       2020-06-28 13:24:42 +08:00 via Android
    @qile1 是的。
    rufeng008
        7
    rufeng008  
    OP
       2020-06-28 13:37:30 +08:00
    @wxsm 一两句话说不清楚,你可以点击链接进入我的 github 或者进入简书介绍看详细内容,另外 github 上有 QQ 群,可以加 QQ 群详聊。至于上面我提的几点我简单的解释一下:

    1 、可以像访问内存对象一样访问 AsyncStorage: 简单来就写了一个暂且叫“绑定器”吧,它的功能是实现把开发者传入的一个普通对象(持久化对象)与 AsyncStorage 进行绑定,用户只需要对这个普通的对象的要关属性进行取值,赋值。绑定器就会自动把这个值映射到调用 AsyncStorage 相应的 getitem 与 setItem 方法,实现将数据 [存] 或者从持久化存中取出来,这样使开发者对持久化数据存储变得方便多了。

    2 、我的库与 axios 等库有一定的相似性,不过封装的更多一点儿,即使不做一行代码配置,直接请求,也能返回基本,success,json,msg,code,response 等基本信息。

    3 、跟你自定义式的原理是一样,不过, 我这边处理是需要使用 X 系列控件,这些控件针自动对涉及到尺寸的相关属性自动计算缩放后的结果,并不需要,你在设置组件属性的时候去调用你上面的 roundToNearestPixel 这个方法,所以从开发者的角度来说,这个组件尺寸缩放是“不可见的”,因为只需要设置一次屏幕参考尺寸就行了,当然,如果部分组件不想用,也有属性可以屏幕缩放功能
    ccraohng
        8
    ccraohng  
       2020-06-28 20:37:28 +08:00 via Android
    ts 支持为零。
    你所谓的 AsyncStorage 是需要是先声明属性,这个真的能用吗?
    请求不是现有的库吗?
    适配屏幕等比缩放,不太认为这是好的方式。
    理想中的是各种组件,比如最基本的自定义下拉刷新,抽屉等等。
    rufeng008
        9
    rufeng008  
    OP
       2020-06-29 10:06:06 +08:00
    @ccraohng
    1 、是的,暂时并不支持 ts
    2 、不先声明属性,那值存哪儿?库的原理是映射,并不是重写一个 AsyncStorage,在 github 上 library 的 readme 文档里的介绍文档有三个示例项目中都有使用实例,你可以运行一下看看效果,这个功能线上线下项目有很多人使用,你可以在 QQ 群里问下他们是否好用。
    3 、上面有多篇文档,如果你看了就清楚了。做任何一个项目,直接使用 RN 自带的 fetch 而不做任何封装,直接与前后台请求交互是远远不够的,但是你使用这个库,基本上是够了,而且这个库本身上交不限制用户的对 fetch 自定义行为扩展。
    4 、库里面实现,屏幕适配是对几个基础控件支持了屏幕自动适配功能,基本上够用了(就像人民币的设计:面额只有 1 元,2 元,5 元,10 元,没有必要去设计:3 元,4 元,6 元这些面额的吧?另外相应的缩放适配方法本来也是导出的,部分属性也是可以直接使用相应的方法的),开发者想使用原生的还是自动适配的都可以,混合使用也都是可行的;

    你的疑问大部分只是因为不了解这个开源库的相关功能,建议你详细看下文档,上面也有相应的链接,有 7,8 篇文章,如果你看完了还有疑问,欢迎加 QQ 群详聊,github 的 readme 文档中有 QQ 群二维码。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2776 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:48 · PVG 15:48 · LAX 23:48 · JFK 02:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.