🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] > [home])(https://wails.io/zh-Hans/docs/gettingstarted/installation) ## 概述 它允许开发人员使用 Go 编程语言创建现代的、原生的桌面应用程序,同时利用Web技术(如HTML、CSS和JavaScript)来构建用户界面 <br/> **功能** * 原生菜单、对话框、主题和半透明 * Windows、macOS 和 linux 支持 * 内置 Svelte、React 、Preact 、Vue、Lit 和 Vanilla JS 的模板 * 从 JavaScript 轻松调用 Go 方法 * 自动将 Go 结构体转换为 TypeScript 模块 * Windows 上不需要 CGO 或外部 DLL * 使用[Vite](https://vitejs.dev/)的实时开发模式 * 可以轻松创建、构建和打包应用的强大命令行工具 * 丰富的[运行时库](https://wails.io/zh-Hans/docs/reference/runtime/intro) * 使用 Wails 构建的应用程序兼容 Apple & Microsoft 商店 ## 安装 安装最新版 ``` go install github.com/wailsapp/wails/v2/cmd/wails@latest ``` ## 快速入门 支持 Svelte React Vue Preact Lit Vanilla 以vue举例 ``` // 先设置代理 set goproxy=https://goproxy.cn wails init -n myproject -t vue ``` ### 传递go 的结构体 定义结构体 ``` type Foo struct { } func (f Foo) Echo() string { return "hello world" } // 绑定 Bind: []interface{}{ app, &Foo{}, }, ``` 运行wails dev 后,生成 ``` frontend/wailsjs/go/main/Foo.d.ts frontend/wailsjs/go/main/Foo.js ``` 现在就可以在js中调用,基于是返回值是异步的 ``` Echo().then(res=>{ console.log(res); // helloworld }); ```