从 v1 迁移
概述
Wails v2 与 v1 相比有重大变化。 本文档旨在重点介绍迁移现有项目的更改和步骤。
创建应用程序
在 v1 中,使用 wails.CreateApp 来创建主应用程序,使用 app.Bind 来添加绑定,然后使用 app.Run() 运行应用程序。
示例:
v1
app := wails.CreateApp(&wails.AppConfig{
Title: "MyApp",
Width: 1024,
Height: 768,
JS: js,
CSS: css,
Colour: "#131313",
})
app.Bind(basic)
app.Run()
在 v2 中,只有一个 wails.Run() 方法接受 应用程序参数选项。
v2
err := wails.Run(&options.App{
Title: "MyApp",
Width: 800,
Height: 600,
AssetServer: &assetserver.Options{
Assets: assets,
},
Bind: []interface{}{
basic,
},
})
绑定
在 v1 中,可以绑定任意函数和结构。 在 v2 中,这已被简化为仅绑定结构体。 以前 v1 传递给 Bind() 中的方法的结构实例现在在 应用程序参数选项 Bind 字段中指定:
v1
app := wails.CreateApp(/* options */)
app.Bind(basic)
v2
err := wails.Run(&options.App{
/* other options */
Bind: []interface{}{
basic,
},
})
在 v1 中,绑定方法可用于前端的 window.backend。 这已更改为 window.go。
应用程序生命周期
在 v1 中,绑定结构中有 2 个特殊方法:WailsInit() 和 WailsShutdown()。 作为应用程序选项的一部分,这些已被 3 个生命周期钩子替换:
注意: 前端 Dom 加载完成回调替换了 v1 中的 wails:ready 系统事件。
这些方法可以是标准函数,但通常的做法是让它们成为结构的一部分:
v2
basic := NewBasicApp()
err := wails.Run(&options.App{
/* Other Options */
OnStartup: basic.startup,
OnShutdown: basic.shutdown,
OnDomReady: basic.domready,
})
...
type Basic struct {
ctx context.Context
}
func (b *Basic) startup(ctx context.Context) {
b.ctx = ctx
}
...
运行时
v2 中的运行时比 v1 丰富得多,支持菜单、窗口操作和更好的对话框。 The signature of the methods has changed slightly - please refer to the Runtime Reference.