众所周知,Go主要用于构建API,Web后端,CLI工具。但是除了这些,其实Go还可以做很多其它事情,比如开发桌面应用。
通过Wails框架,我们可以使用Go和Vue.js构建出桌面应用程序。
image
使用Wails开发桌面应用非常的容易,只需要使用简单的命令,我们就可以搭建出运行框架,而且打包应用非常简单,只需要一条命令就可以完成。
Wails提供了将Go代码和Web前端包装到一个二进制文件中的功能。通过Wails CLI,我们可以轻松处理项目的创建,编译和捆绑。
安装我们可以使用go get非常快速地安装wails cli环境。
go get github.com/wailsapp/wails/cmd/wails wails
wails setup
事件绑定
go和前端通过事件进行绑定,前端绑定golang的方法之后,就可以和golang进行数据的传递,并且这种传递是双向的,前端可以给后端发送数据,后端也可以给前端推送数据。
image
后端可以通过Bind方法将实例绑定到app上,然后前端可以通过后端绑定的实例来调用方法。
package main
import (
"github.com/leaanthony/mewn"
"github.com/plutov/packagemain/cpustats/pkg/sys"
"github.com/wailsapp/wails"
)
func main() {
js := mewn.String("./frontend/dist/app.js")
css := mewn.String("./frontend/dist/app.css")
stats := &sys.Stats{}
app := wails.CreateApp(&wails.AppConfig{
Width: 512,
Height: 512,
Title: "CPU Usage",
JS: js,
CSS: css,
Colour: "#131313",
})
app.Bind(stats)
app.Run()
}
window.backend.instance.functionname
image
Wails的出现为我们使用go开发桌面提供了另一种思路,事件绑定概念使控制应用程序的状态变得非常容易。
当然,Wails还处于成长阶段,目前可能还有些不完善的地方,不过这并不影响我们去学习和使用它,毕竟使用一门语言来做所有事情是我们所期望的,虽然这并不现实。
有疑问加站长微信联系(非本文作者)