博客

  • 1)使用Vue3开发桌面应用程序——常见路线

    Vue不是桌面应用程序框架,但很适合作为桌面应用程序的界面层,目前看到的多数由Vue开发的桌面应用程序,是Web技术(Vue/React)+桌面壳实现的。以下是常见路线:

    1.Vue+Electron

    最主流的组合,Electron的本质是把Chromium+Node.js打包成一个桌面应用程序,Vue负责UI。优点是生态成熟、跨平台(Mac、Windows、Linux),缺点是体积大、内存占用率偏高(因为带了浏览器内核)。

    2.Vue+Tauri

    更轻量、更有热度、更现代,Tauri使用系统自带的浏览器内核渲染界面,例如在Windows上使用Webview 2,后端是Rust,可以通过插件或命令扩展。优点是体积小、占用率低、安全模型更严格,缺点是有些能力要依赖插件,生态比Electron好一点,不过渐渐在变好了。

    3.Vue+.NET

    这里有两种常见做法:

    1)Webview 2作为宿主

    用Winforms/WPF/WinUI做一个壳,里面嵌入Webview,把Vue页面当作UI渲染。程序依然是.NET桌面应用程序的结构(窗口管理、系统集成),UI用Vue做,审美和效率都高。

    2)Blazor Hybird

    适合想要.NET生态、现代UI、更愿意使用前端栈开发的人,Blazor Hybrid(MAUI)也是”WebUI+原声壳”的路线。

    4.Vue+Neutralion/Wails

    相对小众,Nentralion相当于极简Electron,Wails 更偏向于GO后端+Web前端。看技术团队的技术栈决定。

    选型问题

    第一,选什么“桌面壳”
    如果你追求“最省脑子、资料最多、资料最好搜”,选 Electron,对新手最友好。如果你追求“轻、体积小、资源占用低”,选 Tauri(WebView2/系统 WebView)。但它在某些系统能力和插件生态上会多一点工程成本。
    如果你追求“最像 WinForms 的方式”,用 .NET + WebView2 宿主。

    第二,Vue 这边用什么
    要简单:Vue 3 + Vite 就够了。Nuxt 不一定,除非你真的需要 Nuxt 的约定和模块生态,特别是如果你需要进行服务端渲染(SSR)或静态站点生成(SSG),或者需要 Nuxt 提供的全局配置、自动路由、模块化系统等功能。否则,Vite + Vue 3 足够满足大多数桌面应用的需求,特别是在开发体验和构建速度方面非常出色。

  • 让每件事情都有进度的方法

    这是我老板教我的方法。他真的是效率达人。哈士奇和边牧的结合体。他读博阶段一共有15+篇journal。在我们这个领域真的非常高产了。

    有段时间我的进度很慢,但是每天其实都非常忙碌。他问:你最近在做什么,为什么进度这么慢。我只是想要了解你每天都在做什么,没有在质疑你的努力。我想可能是方法出了问题。(我的老板真的超级超级超级好,写的我都要哭了。因为他真的是在教我无论是学科还是学习方式)

    在我给他详细描述了之后他教我如何安排时间。在我运用了大半年之后,我觉得这个确实是一个很有效的方法。

    方法如下:

    1. 每天花5分钟写下今天要干的事情。
    2. 排序:(图一左最上)

    事情会有很多种分类:我喜欢干的,我讨厌干的,马上得干完的,过两天得干完的,要用脑子的,不要用脑子的。

    排序如下:
    a)今天得干完的(今天ddl),且我讨厌干的
    b) 今天得干完的
    c)过两天得干完,要用脑子,我喜欢的
    d)过两天得干完,不用脑子的
    e)大概写一下明天从哪里开始(图二右上),回复邮件,阅读文献。

    1. 时间分配:按照每天工作8小时算(不包括摸鱼时间)
      先做a,再做b。
      a和b做完之后,如果剩四小时
      c三小时
      d一小时
      e晚上睡前一小时

    我听到这样的方法时有个疑问,就是cd我可能在规划时间做不完。我老板的回答是:不急,而且你有进度。明天继续。你需要的是有效规划时间,让每一件事都有进度,不是做完。

    ——补充——

    1. 突发事件打乱计划怎么办?
      在你知道这件事的时候重新计划。突发事件很急,优先级必然高。做完最急的,再继续。突发事件过两天才ddl,那就先把ab做完,后面再把突发事件加入计划来安排。
    2. 事件没有ddl怎么办?
      没有ddl且重要的放在b之后做。这样做的时候不会担心别的没做完,想想后面几天才due的东西不会很慌张。重要的是,不要把全部时间都放在这个事情上。比如干完ab还剩4小时,无ddl事件1小时,c2小时,d1小时。千万不要工作超过你给该事件的规划时见。
    3. 全是要动脑子且不想干
      这是学习方法有问题。要动脑子说明这件事难。不想干说明这事,说明你学习程度无法解决事件。感到沮丧,所以不想干。如果这事虽然难,但知道可以做出来,你最多是无感。
  • 机场或许是自由的具象化

    机场或许是自由的具象化

    无意中刷到一篇文章,作者说“有很多个时刻在机场感受到自由”,在这一刻我似乎真正触摸到了自由和生活的形状。从抽象角度去体系化地思考问题、感知世界已在不知不觉中成了习惯,但是高屋建瓴的蓝图需要一砖一瓦来具象化。这些具象化的符号是方法论和现实世界的联结。

    喜欢机场。
    在这里能感受到与世界的链接,这里才是大地上离天空最近的地方。秩序、科技、宏伟,这是文明的象征,是希望的象征。每一架起降的航班都拖曳着我的想象,偷偷描绘着世界上另外一个地方的一笔一划,偷偷想象着每个旅人过往人生中的一撇一捺。

    喜欢飞行。
    每一次远行的起飞都托举着对旅途的期待和想象,未来可以是好也可以是坏,但在这一刻并不重要,因为前路如何仍在脚下,这是自由;
    每一次归程的降落也承载着一路的记忆与时光,当然有开心难忘也有遗憾沮丧,但在这一刻也不重要,因为过往皆过往,每一段旅途都融成了自己不可分割的一部分,见到了更多的风景,引导着未来的方向,让我拥有更强的力量,带着更好的自己继续探索未知,这亦是自由。

    与其他交通方式不同,坐飞机总是很有“仪式感”,起飞时的加速度与降落时的触地感就像是一种庄严的信号,宣示着新的开始与新的结束。生活需要仪式感,每个人的人生只有一张入场券,剧本有好有坏但我们无路可选,拿起剧本就要对得起自己。来时未必体面,谢幕应求无悔,这是人生的仪式感。

    喜欢旅行。
    每一次旅行是万千世界对我的具象化,是我对世界的主动链接。我很幸运我仍拥有短暂但美好的自由。我不再祈求着如此的自由时光,因为我知道这是天赐的礼物,我能看得到这份礼物到期的一天。我只希冀可以在有限的自由时光中去寻求无限的广阔天地。

    我读书读到这,也是为了看见更大的世界,知道更多不同的可能性之后,成为更加包容和进步的人,可以更加从容坚定地选择自己热爱的生活,这是更大的自由。

    最难的不是为所欲为,而是不为所不欲,这是至高无上的自由。当然我希望有一天可以实现,这是极其贪婪的。

    飞到了云层之上,看不到地面时,其实你可以处在世界的任何地方,这或许也是自由。