# 首次加载(编译-gencode)

前言

将之前的抽象语法树生成代码,符合 jsx 语法规范,下次执行的时候可以通过 createElement 生成虚拟 dom,为组件的派发更新做准备。

export function generate(
  ast: ASTElement | void,
  options: CompilerOptions
): CodegenResult {
  const state = new CodegenState(options)
  const code = ast ? genElement(ast, state) : '_c("div")'
  return {
    render: `with(this){return ${code}}`,
    staticRenderFns: state.staticRenderFns,
  }
}
1
2
3
4
5
6
7
8
9
10
11