React Native 项目快速开发库,超实用! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
rufeng008
V2EX    程序员

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

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

    分享一款超实用的,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     Solana     943 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 19:37 PVG 03:37 LAX 12:37 JFK 15:37
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86