partials

partials.IncludeCached

执行给定模板并缓存结果,可选择性地传入一个或多个变体键。若局部模板包含 return 语句,则返回该语句的值,否则返回渲染输出。

签名
partials.IncludeCached LAYOUT CONTEXT [VARIANT...]
返回类型
any
别名
partialCached

没有 return 语句时,partialCached 函数返回 template.HTML 类型的字符串。有 return 语句时,partialCached 函数可以返回任意数据类型。

对于不需要每次调用都重新渲染的复杂模板,partialCached 函数可以带来显著的性能提升。

在局部模板中,以 ./ 或 ../ 开头的路径相对于调用方局部模板解析。请参见 partials.Include。

最简单的用法如下:

{{ partialCached "footer.html" . }}

向 partialCached 传入额外参数可以为缓存的局部模板创建变体。例如,如果某个复杂的局部模板在同一 section(内容区块)内的页面上渲染结果应当完全相同,就可以按 section 创建变体,让该局部模板在每个 section 中只渲染一次:

layouts/baseof.html
{{ partialCached "footer.html" . .Section }}

需要创建唯一变体时,可以按需传入任意数据类型的额外参数:

{{ partialCached "footer.html" . .Params.country .Params.province }}

变体参数对底层局部模板不可见,它们只用于生成唯一的缓存键。

要从局部模板返回值,请使用 return 语句:

{{ if math.ModBool . 2 }}
  {{ return "even" }}
{{ end }}
{{ return "odd" }}