Standalone templates

Vize.compile_template/2 compiles a template, without an SFC around it, to a render function:

{:ok, result} = Vize.compile_template(~s(<div v-if="show">{{ msg }}</div>))

result.code      # render function
result.preamble  # imports
result.helpers   # ["openBlock", "createBlock", "Fragment", "createCommentVNode", ...]

Options:

  • :mode: "function" (default) for a plain function, or "module" for an ES module.
  • :ssr: compile for server-side rendering.

Server-side rendering

Vize.compile_ssr/1 compiles a template to code that writes HTML with _push(). Run it in a JavaScript runtime such as QuickBEAM.

{:ok, result} = Vize.compile_ssr("<div>{{ msg }}</div>")

result.code
# function ssrRender(_ctx, _push, _parent, _attrs) {
#   _push(`<div${_ssrRenderAttrs(_attrs)}>${_ssrInterpolate(_ctx.msg)}</div>`)
# }

result.preamble
# import { ssrInterpolate as _ssrInterpolate, ssrRenderAttrs as _ssrRenderAttrs } from "@vue/server-renderer"