+
83
-

回答

有,叫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 官方网站

网友回复

我知道答案,我要回答