在这篇博文中,我们将看看 vue-nodegui,一个新发布的 JS 库,用于使用 VueJS 创建跨平台的原生桌面应用程序💚
-
回购链接:https://github.com/nodegui/vue-nodegui
-
文档站点:https://vue.nodegui.org
为什么不是电子?
在我们深入了解 vue-nodegui 之前,让我们讨论一下最流行的替代方案:Electron ⚛️
一段时间以来,Electron 一直是最流行的使用 JS 创建桌面应用程序的库。虽然这是一个了不起的解决方案,但它在设计上有一些严重的痛点:
-
Electron 应用程序往往会变得臃肿,因为每个 Electron 应用程序都附带了一个运行它的 Chromium 浏览器版本。因此,它不是_真正_原生的。
-
Electron 应用程序还存在 CPU/内存利用率过高的问题。
什么是vue-nodegui? 💚
vue-nodegui 是nodegui的自定义 vue3 渲染器,Qt5的原生 JS 绑定库。以下是去年nodegui公告的摘录:
"NodeGUI 由 Qt5 提供支持 💚 与其他基于 chromium 的解决方案(如电子)相比,它的 CPU 和内存效率更高。NodeGui 希望整合 Electron 的所有优点:易于开发、样式自由、原生 API、出色的文档等。同时,NodeGui 旨在提高内存和 CPU 效率。"
vue-nodegui 允许开发人员使用熟悉的 Vue API 来创建他们的原生桌面应用程序——react-native 为 react 所做的事情。由于 vue-nodegui 最终由 Qt5 提供支持,这意味着 vue-nodegui 不需要浏览器环境来渲染。相反,应用程序中的小部件是真正原生的。
特点💎
setupcomposition api
要求📝
以下是系统创建 vue-nodegui 应用程序的一般要求:
-
仅支持 64 位操作系统。
-
CMake 3.1 及更高版本(安装说明可在此处找到:https://cmake.org/install/)
-
制造商,GCC v7
-
NodeJS v12.x 及以上
您可以在入门页面上找到每个要求和故障排除指南的详细安装步骤。
来试试吧🤩
首先,让我们首先克隆 starter repo:
git clone https://github.com/nodegui/vue-nodegui-starter hello-world
cd hello-world
npm install
npm run dev
让我们创建一个带有计数器的基本 hello-world 项目
App.vue
<template>
<vn-view :styleSheet="styles">
<vn-text id="header">Hello world</vn-text>
<vn-view id="row">
<vn-button @clicked="decrement">-</vn-button>
<vn-text id="count">{{count}}</vn-text>
<vn-button @clicked="increment">+</vn-button>
</vn-view>
</vn-view>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
const count = ref(0);
const increment = () => {
count.value += 1;
}
const decrement = () => {
count.value -= 1;
}
const styles = `
#header {
padding: 10px;
background: #36495e;
width: 200px;
color: #fff;
qproperty-alignment: AlignCenter;
}
#row {
width: '100%';
flex-direction: 'row';
justify-content: 'center';
}
#count {
padding: 5px;
qproperty-alignment: AlignCenter;
}
`
return {
count,
decrement,
increment,
styles
}
}
};
</script>
npm run dev
[](https://res.cloudinary.com/practicaldev/image/fetch/s--bqvPzWn3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https:// /dev-to-uploads.s3.amazonaws.com/i/4riemaspm4br48wb4kst.gif)
如您所见,我们使用非常熟悉的 Vue API 创建了一个基本的计数器应用程序。 🚀🤘🏽
, ,
贡献和支持☃️
如果您浏览了vue-nodegui repo,您会意识到即使它是一个很棒的项目,它仍处于起步阶段。在我们可以在生产应用程序中使用它之前,需要在创建小部件和围绕它的生态系统方面做更多的工作。这是你们都进来的地方! 🚪
我们全心全意地欢迎以pull-requests的形式为 vue-nodegui - 代码、文档、姐妹库(动画、测试、组件)提供任何形式的贡献。我们还选择了#Hacktoberfect来鼓励这些贡献! 🥳
如果您喜欢该项目,请通过主演 ⭐️⭐️repo 来表示您的支持
如果您能够在经济上支持,请随时赞助💵💵这个项目
超级兴奋能一起建造一些宏伟的东西! ♥️
干杯☕️