AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

如何使用 templ 在 Go 中編寫(xiě) HTML 用戶(hù)界面?

來(lái)源: 責(zé)編: 時(shí)間:2023-12-21 17:12:12 288觀看
導(dǎo)讀簡(jiǎn)介templ[1] 是一個(gè)在 Go 中編寫(xiě) HTML 用戶(hù)界面的語(yǔ)言。使用 templ,我們可以創(chuàng)建可呈現(xiàn) HTML 片段的組件,并將它們組合起來(lái)創(chuàng)建屏幕、頁(yè)面、文檔或應(yīng)用程序。安裝我們可以通過(guò)以下兩種方式來(lái)安裝 templ:go 安裝首先,我們

簡(jiǎn)介

templ[1] 是一個(gè)在 Go 中編寫(xiě) HTML 用戶(hù)界面的語(yǔ)言。使用 templ,我們可以創(chuàng)建可呈現(xiàn) HTML 片段的組件,并將它們組合起來(lái)創(chuàng)建屏幕、頁(yè)面、文檔或應(yīng)用程序。jPh28資訊網(wǎng)——每日最新資訊28at.com

安裝

我們可以通過(guò)以下兩種方式來(lái)安裝 templ:jPh28資訊網(wǎng)——每日最新資訊28at.com

go 安裝

首先,我們需要安裝 Go 1.20 或更高版本。然后,在命令行中運(yùn)行以下命令:jPh28資訊網(wǎng)——每日最新資訊28at.com

go install github.com/a-h/templ/cmd/templ@latest

二進(jìn)制安裝

我們也可以從 GitHub 的發(fā)布頁(yè)[2] 下載并安裝二進(jìn)制文件。jPh28資訊網(wǎng)——每日最新資訊28at.com

創(chuàng)建簡(jiǎn)單的模板組件

讓我們來(lái)創(chuàng)建一個(gè)簡(jiǎn)單的 templ 組件。jPh28資訊網(wǎng)——每日最新資訊28at.com

首先,我們需要?jiǎng)?chuàng)建一個(gè)新的 Go 項(xiàng)目。在命令行中執(zhí)行以下命令:jPh28資訊網(wǎng)——每日最新資訊28at.com

mkdir templDemocd templDemogo mod init

然后,我們創(chuàng)建一個(gè)包含組件的 hello.templ 文件。組件是一個(gè)函數(shù),它包含 templ 元素、標(biāo)記以及 if、switch 和 for 表達(dá)式。jPh28資訊網(wǎng)——每日最新資訊28at.com

package maintempl hello(name string) { <div>Hello, { name }</div>}

接下來(lái),我們執(zhí)行 templ generate 命令生成 Go 代碼。命令的輸出如下:jPh28資訊網(wǎng)——每日最新資訊28at.com

Processing path: templDemoGenerated code for "templDemo//hello.templ" in 2.2127msGenerated code for 1 templates with 0 errors in 2.7429ms

templ 會(huì)生成一個(gè)名為 hello_templ.go 的文件,其中包含生成的 Go 代碼。這個(gè)文件中包含一個(gè)名為 hello 的函數(shù),它接受一個(gè)名為 name 的參數(shù),并返回一個(gè)可渲染 HTML 的 templ.Component。jPh28資訊網(wǎng)——每日最新資訊28at.com

func hello(name string) templ.Component {  // ...}

接下來(lái),我們編寫(xiě)一個(gè)程序?qū)⒔M件渲染到 stdout。創(chuàng)建一個(gè)名為 main.go 的文件。jPh28資訊網(wǎng)——每日最新資訊28at.com

package mainimport ( "context" "os")func main() { component := hello("Tim") component.Render(context.Background(), os.Stdout)}

最后,我們執(zhí)行以下命令來(lái)運(yùn)行程序。程序會(huì)將組件的 HTML 輸出到 stdout。jPh28資訊網(wǎng)——每日最新資訊28at.com

go run main.go

輸出結(jié)果如下:jPh28資訊網(wǎng)——每日最新資訊28at.com

<div>Hello, Tim</div>

我們可以將任何實(shí)現(xiàn) io.Writer 接口的類(lèi)型傳遞給組件的渲染函數(shù),而不僅僅是將 os.Stdout 傳遞進(jìn)去。這意味著我們可以將輸出寫(xiě)入文件、bytes.Buffer 或 HTTP 響應(yīng)中。jPh28資訊網(wǎng)——每日最新資訊28at.com

通過(guò)這種方式,我們可以使用 templ 生成 HTML 文件,并將其作為靜態(tài)內(nèi)容托管在 S3 存儲(chǔ)桶、Google Cloud Storage 中,或者將其用于生成 HTML 文件,然后通過(guò)轉(zhuǎn)換流程轉(zhuǎn)換為 PDF 或通過(guò)電子郵件發(fā)送。jPh28資訊網(wǎng)——每日最新資訊28at.com

運(yùn)行第一個(gè)模板應(yīng)用程序

讓我們更新之前的應(yīng)用程序,通過(guò) HTTP 提供 HTML 頁(yè)面,而不是將其寫(xiě)入終端。jPh28資訊網(wǎng)——每日最新資訊28at.com

首先,我們需要更新 main.go 文件。我們可以使用 templ.Handler 函數(shù)將 templ 組件作為標(biāo)準(zhǔn)的 HTTP 處理器。jPh28資訊網(wǎng)——每日最新資訊28at.com

package mainimport ( "fmt" "net/http" "github.com/a-h/templ")func main() { component := hello("Tim")  http.Handle("/", templ.Handler(component)) fmt.Println("Listening on :3000") http.ListenAndServe(":3000", nil)}

運(yùn)行程序后,我們可以在瀏覽器中訪問(wèn)相應(yīng)的頁(yè)面:jPh28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片jPh28資訊網(wǎng)——每日最新資訊28at.com

結(jié)束語(yǔ)

現(xiàn)在,我們已經(jīng)介紹了如何使用 templ 在 Go 中編寫(xiě) HTML 用戶(hù)界面。templ 是一個(gè)成熟的工具,可以幫助我們快速構(gòu)建 web 應(yīng)用。jPh28資訊網(wǎng)——每日最新資訊28at.com

參考資料

[1]templ: https://github.com/a-h/templjPh28資訊網(wǎng)——每日最新資訊28at.com

[2]GitHub 的發(fā)布頁(yè): https://github.com/a-h/templ/releases/tag/v0.2.476jPh28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-51261-0.html如何使用 templ 在 Go 中編寫(xiě) HTML 用戶(hù)界面?

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Go 語(yǔ)言中并發(fā)的威力

下一篇: 前端 JS 安全對(duì)抗原理與實(shí)踐

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
Top