当前位置:首页 > 科技  > 软件

如何使用 templ 在 Go 中编写 HTML 用户界面?

来源: 责编: 时间:2023-12-21 17:12:12 373观看
导读简介templ[1] 是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件,并将它们组合起来创建屏幕、页面、文档或应用程序。安装我们可以通过以下两种方式来安装 templ:go 安装首先,我们

简介

templ[1] 是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件,并将它们组合起来创建屏幕、页面、文档或应用程序。G4t28资讯网——每日最新资讯28at.com

安装

我们可以通过以下两种方式来安装 templ:G4t28资讯网——每日最新资讯28at.com

go 安装

首先,我们需要安装 Go 1.20 或更高版本。然后,在命令行中运行以下命令:G4t28资讯网——每日最新资讯28at.com

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

二进制安装

我们也可以从 GitHub 的发布页[2] 下载并安装二进制文件。G4t28资讯网——每日最新资讯28at.com

创建简单的模板组件

让我们来创建一个简单的 templ 组件。G4t28资讯网——每日最新资讯28at.com

首先,我们需要创建一个新的 Go 项目。在命令行中执行以下命令:G4t28资讯网——每日最新资讯28at.com

mkdir templDemocd templDemogo mod init

然后,我们创建一个包含组件的 hello.templ 文件。组件是一个函数,它包含 templ 元素、标记以及 if、switch 和 for 表达式。G4t28资讯网——每日最新资讯28at.com

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

接下来,我们执行 templ generate 命令生成 Go 代码。命令的输出如下:G4t28资讯网——每日最新资讯28at.com

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

templ 会生成一个名为 hello_templ.go 的文件,其中包含生成的 Go 代码。这个文件中包含一个名为 hello 的函数,它接受一个名为 name 的参数,并返回一个可渲染 HTML 的 templ.Component。G4t28资讯网——每日最新资讯28at.com

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

接下来,我们编写一个程序将组件渲染到 stdout。创建一个名为 main.go 的文件。G4t28资讯网——每日最新资讯28at.com

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

最后,我们执行以下命令来运行程序。程序会将组件的 HTML 输出到 stdout。G4t28资讯网——每日最新资讯28at.com

go run main.go

输出结果如下:G4t28资讯网——每日最新资讯28at.com

<div>Hello, Tim</div>

我们可以将任何实现 io.Writer 接口的类型传递给组件的渲染函数,而不仅仅是将 os.Stdout 传递进去。这意味着我们可以将输出写入文件、bytes.Buffer 或 HTTP 响应中。G4t28资讯网——每日最新资讯28at.com

通过这种方式,我们可以使用 templ 生成 HTML 文件,并将其作为静态内容托管在 S3 存储桶、Google Cloud Storage 中,或者将其用于生成 HTML 文件,然后通过转换流程转换为 PDF 或通过电子邮件发送。G4t28资讯网——每日最新资讯28at.com

运行第一个模板应用程序

让我们更新之前的应用程序,通过 HTTP 提供 HTML 页面,而不是将其写入终端。G4t28资讯网——每日最新资讯28at.com

首先,我们需要更新 main.go 文件。我们可以使用 templ.Handler 函数将 templ 组件作为标准的 HTTP 处理器。G4t28资讯网——每日最新资讯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)}

运行程序后,我们可以在浏览器中访问相应的页面:G4t28资讯网——每日最新资讯28at.com

图片图片G4t28资讯网——每日最新资讯28at.com

结束语

现在,我们已经介绍了如何使用 templ 在 Go 中编写 HTML 用户界面。templ 是一个成熟的工具,可以帮助我们快速构建 web 应用。G4t28资讯网——每日最新资讯28at.com

参考资料

[1]templ: https://github.com/a-h/templG4t28资讯网——每日最新资讯28at.com

[2]GitHub 的发布页: https://github.com/a-h/templ/releases/tag/v0.2.476G4t28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-51261-0.html如何使用 templ 在 Go 中编写 HTML 用户界面?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Go 语言中并发的威力

下一篇: 前端 JS 安全对抗原理与实践

标签:
  • 热门焦点
  • 小米官宣:2023年上半年出货量中国第一!

    今日早间,小米电视官方微博带来消息,称2023年小米电视上半年出货量达到了中国第一,同时还表示小米电视的巨屏风暴即将开始。“公布一个好消息2023年#小米电视上半年出货量中国
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • K8S | Service服务发现

    一、背景在微服务架构中,这里以开发环境「Dev」为基础来描述,在K8S集群中通常会开放:路由网关、注册中心、配置中心等相关服务,可以被集群外部访问;图片对于测试「Tes」环境或者
  • 一篇文章带你了解 CSS 属性选择器

    属性选择器对带有指定属性的 HTML 元素设置样式。可以为拥有指定属性的 HTML 元素设置样式,而不仅限于 class 和 id 属性。一、了解属性选择器CSS属性选择器提供了一种简单而
  • 这款新兴工具平台,让你的电脑效率翻倍

    随着信息技术的发展,我们获取信息的渠道越来越多,但是处理信息的效率却成为一个瓶颈。于是各种工具应运而生,都在争相解决我们的工作效率问题。今天我要给大家介绍一款效率
  • 破圈是B站头上的紧箍咒

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之每年的暑期档都少不了瞄准追剧女孩们的古偶剧集,2021年有优酷的《山河令》,2022年有爱奇艺的《苍兰诀》,今年却轮到小破站抓住了追
  • 支持aptX Lossless无损传输 iQOO TWS 1赛道版发布限时优惠价369元

    2023年7月4日,“无损音质,声动人心”iQOO TWS 1正式发布,支持aptX Lossless无损传输,限时优惠价369元。iQOO TWS 1耳机率先支持端到端aptX Lossless无
  • 滴滴违法违规被罚80.26亿 共存在16项违法事实

    滴滴违法违规被罚80.26亿 存在16项违法事实开始于2121年7月,历经一年时间,网络安全审查办公室对“滴滴出行”网络安全审查终于有了一个暂时的结束。据“网信
  • 电博会上海尔智家模拟500平大平层,还原生活空间沉浸式体验

    电博会为了更好地让参展观众真正感受到智能家居的绝妙之处,海尔智家的程传岭先生同样介绍了展会上海尔智家的模拟500平大平层,还原生活空间沉浸式体验。程传
Top