用 react 和 yue 编写桌面应用

2018-06-03 17:06:38 +08:00
 oyyd

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 的用户,我知道你们有更成熟的选择,就不用来争了:)

3351 次点击
所在节点    分享创造
6 条回复
123s
2018-06-04 09:19:00 +08:00
yue 也是基于 electron 吗?
123s
2018-06-04 09:19:26 +08:00
我前几天打包了一个 hello world,50 多 M。然后就没有然后了
tinytin
2018-06-04 14:30:43 +08:00
@123s 不是,不过是一个作者写的
oyyd
2018-06-04 17:48:30 +08:00
@123s 但是 yue 最终打包也需要打包一份 node,文件大小可以参照 https://github.com/yue/wey/releases
che3vinci
2018-06-05 14:01:18 +08:00
这不是用 html 和 js、css 来开发程序吧?
oyyd
2018-06-05 18:52:14 +08:00
@che3vinci 不是。可以过一下 yue 的文档。但是 yue 可以渲染系统支持的 webview。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/460015

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX