# 首次加载(编译-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
2
3
4
5
6
7
8
9