小程序也可以写 React Hooks - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
xcodebuild
V2EX    分享创造

小程序也可以写 React Hooks

  •  2
     
  •   xcodebuild
    xcodebuild 2019-01-14 10:47:59 +08:00 4482 次点击
    这是一个创建于 2513 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文地址在:https://zhuanlan.zhihu.com/p/54795961

    步入 9201 年所以一时心血来潮想写个小程序玩一玩,但是开发过程中发现各种难受,于是看了一下现有的各种方案。最后还是决定把 React.js 直接搬到小程序里面运行。

    和 taro 等方案不同的是,这个方案运行的是真正的 React.js 和真正意义上的 JSX,意味着你在书写 JSX 的时候不会有各种奇怪的限制,也完全可以使用 React Hooks.

    项目地址:https://github.com/CodeFalling/remax

    img

    17 条回复    2019-01-17 11:25:57 +08:00
    CodingPuppy
        1
    CodingPuppy  
       2019-01-14 11:06:39 +08:00 via Android
    支持
    jeremaihloo
        2
    jeremaihloo  
       2019-01-14 11:09:10 +08:00
    支持
    7sDream
        3
    7sDream  
       2019-01-14 11:20:48 +08:00
    老哥牛皮呀。最近正好想试下小程序是怎么开发的。

    Emmm,不过我不会前端,让我先学学 React 再来用这个试试。
    xcodebuild
        4
    xcodebuild  
    OP
       2019-01-14 11:25:53 +08:00
    @7sDream 先学习一下 ES + Babel + Webpack + React + JSX + Redux + ... :doge
    ilumer
        5
    ilumer  
       2019-01-14 11:54:30 +08:00
    支持搞个大新闻
    walter211
        6
    walter211  
       2019-01-14 12:33:07 +08:00
    碉堡了
    helsonxiao
        7
    helsonxiao  
       2019-01-14 12:42:42 +08:00 via Android
    资瓷
    Geeker
        8
    Geeker  
       2019-01-14 12:48:45 +08:00
    蛇神还是 6,我前两天用了下 taro,最后放弃还是写原生小程序了。
    xcodebuild
        9
    xcodebuild  
    OP
       2019-01-14 12:53:22 +08:00
    @Geeker 因为把 JSX 当模板写这个思路很怪异,说来小程序还不如一开始就支持用 React 或者 Vue 写,现在的原生写法太难受了
    isbase
        10
    isbase  
    PRO
       2019-01-14 17:30:58 +08:00   1
    大概试用了下,很不错,实现自定义 react renderer 才是王道,

    现有的各种小程序框架实在太过蹩脚
    pkm
        11
    pkm  
       2019-01-14 17:49:28 +08:00
    赞~
    xcodebuild
        12
    xcodebuild  
    OP
       2019-01-14 18:36:19 +08:00 via iPhone
    @isbase 唉说到底还是小程序自己非要搞事情,想隔离渲染线程直接用 react-worker 类似的方案不就行了,非要强行割裂一个平台出来
    wobuhuicode
        13
    wobuhuicode  
       2019-01-14 19:38:02 +08:00
    @codefalling 小程序的逻辑在原生 IOS 开发来说是合理的。JS 运行在 jscore 的 rutime 中,当 OC eval JS 去执行的话,是在主线程执行的,而写在模版的最终渲染到 HTML 去,这里面的渲染逻辑( HTML 内部 JS 的执行逻辑)是非主线程的。
    xcodebuild
        14
    xcodebuild  
    OP
       2019-01-14 19:40:17 +08:00 via iPhone
    @wobuhuicode react-worker 就满足这样的条件
    wobuhuicode
        15
    wobuhuicode  
       2019-01-14 19:47:46 +08:00 via iPhone   1
    @codefalling 从线程来说或许可以这样。不过从小程序最初的架构来说,每一个页面都是一个新的 viewController 创建的 webview。如果按照传统的 web 页面开发,其中的逻辑肯定会被隔离。为了保持开发的时候逻辑的一致,我们写的 js 代码是会由一个独立的 jsCore 去运行
    Sparetire
        16
    Sparetire  
       2019-01-15 03:09:05 +08:00 via Android
    大佬。。
    ql9075
        17
    ql9075  
       2019-01-17 11:25:57 +08:00
    666
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5276 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:13 PVG 15:13 LAX 23:13 JFK 02:13
    Do have faith in what you're doing.
    ubao msn 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