眾所周知瘫絮,Go主要用于構(gòu)建API涨冀,Web后端,CLI工具麦萤。但是除了這些鹿鳖,其實(shí)Go還可以做很多其它事情扁眯,比如開發(fā)桌面應(yīng)用。
通過Wails框架翅帜,我們可以使用Go和Vue.js構(gòu)建出桌面應(yīng)用程序姻檀。
使用Wails開發(fā)桌面應(yīng)用非常的容易,只需要使用簡單的命令涝滴,我們就可以搭建出運(yùn)行框架绣版,而且打包應(yīng)用非常簡單,只需要一條命令就可以完成歼疮。
Wails提供了將Go代碼和Web前端包裝到一個二進(jìn)制文件中的功能杂抽。通過Wails CLI,我們可以輕松處理項(xiàng)目的創(chuàng)建韩脏,編譯和捆綁缩麸。
安裝
我們可以使用go get非常快速地安裝wails cli環(huán)境赡矢。
go get github.com/wailsapp/wails/cmd/wails wails
wails setup
事件綁定
go和前端通過事件進(jìn)行綁定杭朱,前端綁定golang的方法之后,就可以和golang進(jìn)行數(shù)據(jù)的傳遞济竹,并且這種傳遞是雙向的痕檬,前端可以給后端發(fā)送數(shù)據(jù),后端也可以給前端推送數(shù)據(jù)送浊。
方法調(diào)用
后端可以通過Bind方法將實(shí)例綁定到app上梦谜,然后前端可以通過后端綁定的實(shí)例來調(diào)用方法。
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
總結(jié)
Wails的出現(xiàn)為我們使用go開發(fā)桌面提供了另一種思路袭景,事件綁定概念使控制應(yīng)用程序的狀態(tài)變得非常容易唁桩。
當(dāng)然,Wails還處于成長階段耸棒,目前可能還有些不完善的地方荒澡,不過這并不影響我們?nèi)W(xué)習(xí)和使用它,畢竟使用一門語言來做所有事情是我們所期望的与殃,雖然這并不現(xiàn)實(shí)单山。