模板引擎

未匹配的标注

模板

模板接口

Fiber 提供了一个 Views 接口来提供你自己的模板引擎:

type Views interface {
    Load() error
    Render(io.Writer, string, interface{}, ...string) error
}

Views 接口包含 Load 和 Render 方法, Load 由 Fiber 在应用初始化时执行以加载/解析模板。

// 传递给 Fiber's Views Engine
app := fiber.New(fiber.Config{
    Views: engine,
    // Views Layout 所有模板的全局布局 
    ViewsLayout: "layouts/main"
})

该 Render 方法与 ctx.Render() 接受模板名称和绑定数据的函数。如果布局未在 Render 函数中定义,它将使用全局布局。

app.Get("/", func(c *fiber.Ctx) error {
    return c.Render("index", fiber.Map{
        "hello": "world",
    });
})

引擎

Fiber 团队维护 templates 包,为多个模板引擎提供包装器:

package main

import (
    "log"
    "github.com/gofiber/fiber/v2"
    "github.com/gofiber/template/html"
)

func main() {
    // 初始化标准 Go html 模板引擎
    engine := html.New("./views", ".html")

    app := fiber.New(fiber.Config{
        Views: engine,
    })
    app.Get("/", func(c *fiber.Ctx) error {
        // 渲染 index 模板
        return c.Render("index", fiber.Map{
            "Title": "Hello, World!",
        })
    })

    log.Fatal(app.Listen(":3000"))
}
<!DOCTYPE html>
<body>
    <h1>{{.Title}}</h1>
</body>
</html>

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/gofiber/2.x/tem...

译文地址:https://learnku.com/docs/gofiber/2.x/tem...

上一篇 下一篇
贡献者:1
讨论数量: 0
发起讨论 只看当前版本


暂无话题~