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

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

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

简介

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

安装

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

go 安装

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

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

二进制安装

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

创建简单的模板组件

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

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

mkdir templDemocd templDemogo mod init

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

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

接下来,我们执行 templ generate 命令生成 Go 代码。命令的输出如下:iie28资讯网——每日最新资讯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。iie28资讯网——每日最新资讯28at.com

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

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

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

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

go run main.go

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

<div>Hello, Tim</div>

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

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

运行第一个模板应用程序

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

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

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

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

结束语

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

参考资料

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

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

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

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

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

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

标签:
  • 热门焦点
  • 太卷!Redmi MAX 100英寸电视便宜了:12999元买Redmi史上最大屏

    8月5日消息,从小米商城了解到,Redmi MAX 100英寸巨屏电视日前迎来官方优惠,到手价12999元,比发布价便宜了7000元,在大屏电视市场开卷。据了解,Redmi MAX 100
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 认真聊聊东方甄选:如何告别低垂的果实

    来源:山核桃作者:财经无忌爆火一年后,俞敏洪和他的东方甄选依旧是颇受外界关心的&ldquo;网红&rdquo;。7月5日至9日,为期5天的东方甄选&ldquo;甘肃行&rdquo;首次在自有App内直播,
  • 小米汽车电池信息疑似曝光:容量101kWh,支持800V高压快充

    7月14日消息,今日一名博主在社交媒体发布了一张疑似小米汽车电池信息的照片,显示该电池包正是宁德时代麒麟电池,容量为101kWh,电压为726.7V,可以预测小
  • 英特尔Xe-HP项目终止,将专注Xe-HPC/HPG系列显卡

    据10 月 31 日消息报道,英特尔高级副总裁兼加速计算系统和图形事业部总经理 表示,Xe-HP“ Arctic Sound” 系列服务器 GPU 已经应用于 oneAPI devcloud 云服
Top