有,叫htmlgo
HTMGO 是一个轻量级的纯 Go 框架,用于构建交互式网站和 Web 应用程序。它结合了 Go 的速度和简洁性以及 HTMX 的超媒体属性,能够为网站添加交互功能,而无需编写 JavaScript。HTMGO 将所有内容都封装在纯 Go 中,编译成一个单一的可部署二进制文件。
核心功能单一可部署二进制文件:所有代码和依赖项都编译成一个二进制文件,方便部署。实时重载:在开发过程中,实时重载 CSS、Go 代码、Ent 模式和路由。自动页面和部分注册:基于文件路径自动注册页面和部分。内置 TailwindCSS 支持:默认支持 TailwindCSS,无需额外配置。插件架构:支持可选插件以简化开发,如 Ent。自定义 HTMX 扩展:减少常见任务的样板代码。示例代码以下是一个简单的示例,展示了如何使用 HTMGO 构建一个显示当前时间的页面:
func IndexPage(ctx *h.RequestContext) *h.Page { now := time.Now() return h.NewPage( h.Div( h.Class("flex gap-2"), h.TextF("The current time is %s", now.String()), ), ) }快速入门
安装 HTMGO:
GOPROXY=direct go install github.com/maddalax/htmgo/cli/htmgo@latest
创建新项目:
htmgo template
运行开发服务器:
htmgo watch
构建生产环境:
htmgo build页面和部分
HTMGO 使用文件路由自动注册页面和部分。页面是 HTMGO 应用程序的入口点,而部分允许在页面中添加交互内容。
组件组件是可重用的逻辑块,用于渲染 HTML。类似于 React 中的组件,HTMGO 中的组件是纯 Go 函数。
交互性HTMGO 提供了多种方法来添加交互性,如通过 HTMX 属性和头部信息进行部分交换、设置事件处理程序等。
性能优化HTMGO 提供了缓存组件的方法,以提高性能,特别是对于渲染开销较大的组件或需要外部数据请求的组件。
更多详细信息和文档可以访问 HTMGO 官方网站。
网友回复