用react和yue编写桌面应用
发布于 5 个月前 作者 oyyd 2158 次浏览 来自 分享

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

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

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

<img src=“https://raw.githubusercontent.com/oyyd/do-space-client/static/site/screenshot.png” width=“400px” />

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

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

所以对于在自己的项目中有同样需求的同学,或许你们可以尝试一下。 相关项目地址:

14 回复

@seven-it 感谢滋瓷

赞 现在electron-vue 打包下来 mac 至少50m 不知道这个咋样

yue里面没打包WebKit?那怎么渲染啊?

@yuu2lee4 遗憾,这个也不会太小(当然还是会小一些),一般node binary就要14m左右,并且直接利用node_modules的话,项目代码都不会太小。

@chapgaga 虽然没有打包,但还是需要系统有安装,或是os自带,或是浏览器自带。

@oyyd 需要安装webkit开发包?

@chapgaga 我记得yue需要libwebkit,一般桌面客户端不需要再安装了

@oyyd 一般桌面客户端,什么意思? libwebkit需要专门安装?

666 差点看成 vue 了

给公司做了一个加班统计工具 感受是拿来玩玩还是可以。。。问题还是比较多

@yuu2lee4 感谢尝试。有几个问题也困扰了我挺久的。

  • react-yue本身包装了yue和react-reconciler,用户需要在可以使用yue的基础上才能使用这个lib。
  • 一些yue本身的问题没法跳过,有些常见的需求对yue来说开发量可能很大,并且yue的跟新进度比较慢(当然我本身很理解这点,可能对我来说,能做的事情是去帮助contribute yue项目本身)。
  • 有两个外国友人希望把一些RN上的经验带进来,但我比较难对这方面做判断,几个问题被我一直放置着了。

基于这些原因(或者说借口),我也是把这个lib放置了一段时间。

@oyyd 还是等yue正式版之后再说 另外可以跟yue作者沟通 一些api的设计尽量 做得比较好用react-reconciler去包装。。

但我感觉挺困难的,yue要做的事情本来就很挺复杂, @zcbenz 一个人应该挺难跟进开发维护的。

回到顶部