用 react 和 yue 编写桌面应用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
oyyd
V2EX    分享创造

用 react 和 yue 编写桌面应用

  •  
  •   oyyd
    oyyd 2018-06-03 17:06:38 +08:00 3716 次点击
    这是一个创建于 2698 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Yue@zcbenz编写的,用于编写跨平台桌面应用的 GUI 库。Yue 支持用 Lua 和 Nodejs 进行调用,熟悉 Javascript 的开发者可以比较快速地上手,也因此 yue 常被用来与 electron 对比。之前 @zcbenz 也在 V2EX 上推荐过一次

    我自己原本也有编写桌面应用的需求。使用 Electron 可以带来各种各样的好处,但对于一些相对简单的场景而言,electron 需要打包进一个 node 和一个 webkit,最终应用的体积小不下来;并且 web 的 UI 风格总会显得与其他原生的应用有些“与众不同”。虽然 Node 上也有一些库在做同样的事情,但是从文档和实际应用的情况来看,基本上都不太靠谱。虽然 yue 同样也还不是那么成熟,但整体 api 上的设计和文档支持让人满意,zcbenz 老师本身作为作者对我而言也是加分项。

    也正是因为 api 设计上的合理,yue 让我方便的利用react-reconciler实现了react-yue这个代码库,从而可以在 yue 的基础上编写 react 桌面应用。我编写了一个简单的 do space 的client,截图如下:

    对于熟悉 react 开发的同学而言,学习成本和代码的维护成本应该会降低不少。并且我们可以直接利用 react 社区中不涉及到 DOM 的项目,比如 redux。在上面的例子中我就直接用了 redux。

    在这基础之上,也不难做出个 hot-loader,这对于目前 yue 在 view 这一层没有特别好的 debug 工具的情况下,应该会对提高开发效率比较有帮助。

    所以对于在自己的项目中有同样需求的同学,或许你们可以尝试一下 yue 和 react-yue。

    相关项目地址:

    PS: 原生开发者和 py 的用户,我知道你们有更成熟的选择,就不用来争了:)

    6 条回复    2018-06-05 18:52:14 +08:00
    123s
        1
    123s  
       2018-06-04 09:19:00 +08:00
    yue 也是基于 electron 吗?
    123s
        2
    123s  
       2018-06-04 09:19:26 +08:00
    我前几天打包了一个 hello world,50 多 M。然后就没有然后了
    tinytin
        3
    tinytin  
       2018-06-04 14:30:43 +08:00
    @123s 不是,不过是一个作者写的
    oyyd
        4
    oyyd  
    OP
       2018-06-04 17:48:30 +08:00
    @123s 但是 yue 最终打包也需要打包一份 node,文件大小可以参照 https://github.com/yue/wey/releases
    che3vinci
        5
    che3vinci  
       2018-06-05 14:01:18 +08:00
    这不是用 html 和 js、css 来开发程序吧?
    oyyd
        6
    oyyd  
    OP
       2018-06-05 18:52:14 +08:00 via iPhone
    @che3vinci 不是。可以过一下 yue 的文档。但是 yue 可以渲染系统支持的 webview。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5197 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 07:31 PVG 15:31 LAX 00:31 JFK 03:31
    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