当设计一个框架的时候,我们有三种选择:纯运行时的、运行时+编译时的或纯编译时的。
纯运行时
纯运行时的框架:由于没有编译的过程,因此我们没办法分析用户提供的内容。
运行时+编译时:可以分析用户提供的内容,看看哪些内容未来可能会改变,哪些内容永远不会改变,这样我们就可以在编译的时候提取这些信息,然后将其传递给Render函数,Render函数得到这些信息之后,就可以做进一步的优化了;
纯编译时:也可以分析用户提供的内容。由于不需要任何运行时,而是直接编译成可执行的JS代码,因此性能可能会更好,但是这种做法有损灵活性,即用户提供的内容必须编译后才能用。
Svelete就是纯编译时的框架。
Vue.js3仍然保持了运行时+编译时的架构。