0%

Runtime + Compiler和Runtime-only

  1. 两者的区别就在于main.js里面
    在这里插入图片描述
    Vue个运行过程如下:
    先将template解析成抽象语法树(ast),然后再编译成render函数,通过render函数将之前的翻译成虚拟DOM,最后渲染为真实DOM在这里插入图片描述
    Runtime + Compiler转换过程:
    tenplate -> ast -> render -> virtual DOM ->UI

Runtime-only则跳过了前两步:
render -> virtual DOM ->UI
综上,Runtime-only性能更高,源码的代码量更少

  1. 那么问题来了,.vue文件里的<template>是怎么解析的呢?
    其实,.vue里的<template>也是被解析成了render函数。所以,.vue文件最终解析之后就是一个对象,而且里面没有呀template。那么是谁解析的呢?是vue-template-compiler
    在这里插入图片描述