# 首次加载(编译-ast)

前言

主要作用是优化之前的抽象语法树,将生成的 ast 文件标记静态根节点和静态节点,下次更新的时候遇到有这种标记的节点直接跳过不进行更新,大大提高性能

export function optimize(root: ?ASTElement, options: CompilerOptions) {
  if (!root) return;
  isStaticKey = genStaticKeysCached(options.staticKeys || "");
  isPlatformReservedTag = options.isReservedTag || no;
  // first pass: mark all non-static nodes.
  markStatic(root);
  // second pass: mark static roots.
  markStaticRoots(root, false);
}
1
2
3
4
5
6
7
8
9