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 的用户,我知道你们有更成熟的选择,就不用来争了:)
1
123s 2018-06-04 09:19:00 +08:00
yue 也是基于 electron 吗?
|
2
123s 2018-06-04 09:19:26 +08:00
我前几天打包了一个 hello world,50 多 M。然后就没有然后了
|
4
oyyd OP @123s 但是 yue 最终打包也需要打包一份 node,文件大小可以参照 https://github.com/yue/wey/releases
|
5
che3vinci 2018-06-05 14:01:18 +08:00
这不是用 html 和 js、css 来开发程序吧?
|