1.开发时
1.写法:
react(jsx):
calss App extends Component{
makeJSX(){
return <div></div>;
}
render(){
return <div></div>;
}
}
vue:
<template>
<div class="App">
</div>
</template>
<script>
...js
</script>
<style>
...css
</style>
react: xml js 可以混着写。判断元素是否显示可以直接用if判断(与jsx判断一样)。
vue: xml / js / css 都是分开写的,不可以混着写。判断元素是否显示需要用固定的语法v-if。
2.编译时
react: 将xml标签 ->js ,所以react的xml和js可以混着写。 没有做编译时优化 =》只做了运行时优化。
vue: 做了编译时优化 语法 主要优化<template></template>部分
vue编译分在线编译(vue本身的代码编译)和离线编译(webpack)
1.createCompilerCreator-->(编译模板的函数)complieToFunctions(template)
//转义html-->AST
2.optimize(ast,options);优化AST,标记静态节点。
3.generate(ast,options);把优化后的AST,转换成可执行的代码。
3.运行时
react:
vue: