日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

前言

本文主要和大家討論全網(wǎng)最火的4個基于Wasm 的 Go生態(tài) Web 框架,使得開發(fā)者不用編寫一行 JS 代碼就可以寫前端應用。在年初,我也確實使用 WebAssembly 將客戶端應用成功移植到了 Web,這也是為什么我一直對 WebAssembly 充滿好奇的原因。我甚至在頭條上開了一個合集《WebAssembly 前沿技術》來專門探討 WebAssembly ,并將持續(xù)關注 WebAssembly 的最新動態(tài)。

正如大家所看到的,當我們還在遲疑是否要在日常開發(fā)中引入 WebAssembly 的時候,很多優(yōu)秀的應用、工具已經(jīng)開始吃 WebAssembly 的紅利了,而且取得了不錯的成就,這可能也是為什么各個瀏覽器廠商、開發(fā)者如此熱衷 WebAssembly 的原因吧。

話不多說,直接進入這幾個框架的介紹。

vugu

Vugu(發(fā)音為 /?vu?.ɡu?/) 是一個用 Go 編寫并以 webassembly 為目標的 web UI 的實驗庫。其受到了以 wasm 為目標的 Go 中 VueJS 庫的啟發(fā)。在 Vugu 的世界里,沒有前端開發(fā)的那些 Node.js、NPM、JS 等等,也沒有龐大的 node_modules 占用大量空間。

Vugu 的典型特征包括:

  • 使用 WebAssembly 在瀏覽器中運行
  • 單文件組件
  • 類似 Vue 的標記語法
  • 原生的 Go 代碼 、標準 Go 構建工具
  • 快速成型
  • ~3 分鐘快速啟動

Vugu 框架的基本思路如下:

  • 開發(fā)者在 .vugu 文件中編寫 UI 組件, 這些文件類似于在 JAVAScript 框架中看到的 UI 組件(例如 .vue 文件)。 但是,它們不包含 JavaScript,而是包含用于 if、for 和其他此類功能的 Go 語言表達式。
  • 每個 .vugu 文件都會轉換為對應的 .go 文件, Vugu 項目中有一個開發(fā)服務器可以在頁面重新加載時自動執(zhí)行此操作,或者可以使用 vugugen 命令行工具與 go generate 集成。 代碼生成還嘗試在需要時提供合理的默認值,以便 .vugu 文件包含盡可能少的樣板文件,同時允許根據(jù)需要進行廣泛的自定義。
  • 項目被編譯為 WebAssembly 模塊并在瀏覽器中運行,當然這依賴于開發(fā)服務器,同時也允許對開發(fā)服務器進行自定義配置。
  • Vugu 庫(包:Github.com/vugu/vugu)提供了根據(jù) .vugu 文件中的標記在網(wǎng)頁上高效同步 html DOM 的功能。 支持附加 DOM 事件處理程序(單擊等)和將大頁面分解為組件等功能。

目前 vugu 在 Github 上通過 MIT 協(xié)議開源,有超過 4.6k 的 star,177 的 fork、項目使用量 155、是一個值得關注的跨端項目。

vecty

Vecty 允許開發(fā)者使用 WebAssembly 在 Go 中構建響應式和動態(tài)的 Web 前端,與 React 和 VueJS 等現(xiàn)代 Web 框架競爭。

通過使用 vecty 框架,開發(fā)者可以享受以下諸多好處 :

  • Go 開發(fā)人員可以成為有競爭力的前端開發(fā)人員
  • 在前端和后端之間共享 Go 代碼
  • 通過 Go 包共享組件的可重用性,以便其他開發(fā)人員可以簡單地導入。

Vecty 框架的目標是:

  • 簡單化:從頭開始設計,以便新手(如 Go)輕松掌握。
  • 高性能:高效且易于理解的性能,小的包大小,與原始 JS/HTML/css 相同的性能。
  • 可組合:嵌套組件以開發(fā)整個用戶界面,像任何普通的 Go 包一樣在邏輯上將它們分開。
  • 專為 Go 設計(隱式)

Vecty 框架的典型特征包括:

  • 通過標準的 Go 編譯器編譯為 WebAssembly
  • 包體積小:0.5 MB hello world
  • 快速基于期望的瀏覽器 DOM diff,支持虛擬 DOM 但資源使用更少。

目前 Vecty 在 Github 上通過 BSD-3-Clause 協(xié)議開源,有超過 2.6k 的 star,是一個值得關注的跨端項目。

go-App

Go-app 是一個用于使用 Go 編程語言 (Golang) 和 WebAssembly (Wasm) 構建漸進式 Web 應用程序 (PWA) 的軟件包。 UI 是通過使用聲明性語法完成的,該語法僅通過使用 Go 編程語言創(chuàng)建和組合 HTML 元素。

因為 Go-app 使用聲明式語法,因此開發(fā)者只需使用 Go 編程語言即可編寫可重用的基于組件的 UI 元素。

// 通過與 HTML 元素組合來顯示 Hello world 的組件,
// 條件和綁定
type hello struct {
	app.Compo
	name string
}
func (h *hello) Render() app.UI {
	return app.Div().Body(
		app.H1().Body(
			app.Text("Hello, "),
			app.If(h.name != "",
				app.Text(h.name),
			).Else(
				app.Text("World!"),
			),
		),
		app.P().Body(
			app.Input().
				Type("text").
				Value(h.name).
				Placeholder("What is your name?").
				AutoFocus(true).
				OnChange(h.ValueTo(&h.name)),
		),
	)
}

下面使用 Go 標準 HTTP 模型為使用 go-app 構建的應用程序提供服務。

func mAIn() {
    //Go-app組件路由(客戶端):
	app.Route("/", &hello{})
	app.Route("/hello", &hello{})
	app.RunWhenOnBrowser()
    // 標準 HTTP 路由(服務器端)
	http.Handle("/", &app.Handler{
		Name:        "Hello",
		Description: "An Hello World! example",
	})
	if err := http.ListenAndServe(":8000", nil); err != nil {
		log.Fatal(err)
	}
}

go-app 框架還包括以下核心特點:

  • 作為單頁應用程序工作
  • 搜索引擎優(yōu)化友好
  • 可安裝
  • 支持離線模式
  • 狀態(tài)管理

目前 go-app 在 Github 上通過 MIT 協(xié)議開源,有超過 7k 的 star,400+的 fork、是一個值得關注的跨端項目。

vue

vue 是 WebAssembly 應用程序的漸進式框架,具有以下核心特點。

  • 為前端空間的框架、狀態(tài)管理器和路由器提供統(tǒng)一的解決方案
  • 利用模板將應用程序邏輯與前端渲染分開
  • 簡化數(shù)據(jù)綁定以簡化狀態(tài)管理與渲染的關系
  • 鼓勵組件重用以提高開發(fā)效率

比如下面的 hello world 示例,main.go 文件被編譯為 .wasm WebAssembly 文件。

package main
import "github.com/norunners/vue"
type Data struct {
	Message string
}
func main() {
	vue.New(
		vue.El("#app"),
		vue.Template("<p>{{ Message }}</p>"),
		vue.Data(Data{Message: "Hello WebAssembly!"}),
	)
	select {}
}

index.wasmgo.html 文件獲取并運行一個 .wasm WebAssembly 文件。

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="{{ .Script }}"></script>
    </head>
    <body>
        <div id="app"></div>
        <script src="{{ .Loader }}"></script>
    </body>
</html>

本文總結

本文主要和大家介紹4大頂級零 JavaScript Go 框架崛起。相信通過本文的閱讀,大家對 vue、go-app、vecty、Vugu 會有一個初步的了解。

因為篇幅有限,文章并沒有過多展開,如果有興趣,可以在我的主頁繼續(xù)閱讀,同時文末的參考資料提供了大量優(yōu)秀文檔以供學習。最后,歡迎大家點贊、評論、轉發(fā)、收藏!

參考資料

https://github.com/hexops/vecty

https://github.com/vugu/vugu

https://www.vugu.org/doc

https://go-app.dev/

https://github.com/maxence-charriere/go-app

https://github.com/norunners/vue

https://medium.com/the-godev-corner/expand-web-app-development-with-go-fc07d55b41f6

分享到:
標簽:JavaScript
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定