Vue和react相同之处:
a) 使用虚拟DOM
b) 提供了响应式和组件化的视图组件
c) 注意力集中保持在核心库(渐进式框架),而将其他功能(路由、全局状态管理)交给相关的库
优化
在react应用中,当某个组件的状态发生变化时,它会以该组件为根,重新渲染整个组件子树。如果要避免不必要的子组件重渲染,你需要在所有可能的地方使用Purecomponent,或是手动实现shouldcomponentUpdate,同时需要不可变的数据结构(immutable)来使得组件更加容易被优化。然而,
在vue中,组价的依赖是在渲染过程中自动追踪的,所以系统能精确的知道那个组件需要被重渲染,可以理解为每一个组件都自动获得了shouldcomponentUpdate
HTML & CSS
JSX & Templates
在React中所有组件的渲染功能都依靠JSX,JSX是使用XML语法编写JavaScript的一种语法糖。优势:
a) 可以使用完整的编程语言JavaScript来构建你的视图界面,
b) 开发工具对JSX的支持比起现有可用的vue模版比较先进(linting、类型检查,编辑器的自动完成)
Vue也提供了渲染函数,甚至支持JSX,然而更推荐的还是vue模版。
优势:
a) 对于很多习惯了HTML的开发者来说模版比起JSX读起来更加自然
b) 基于HTML的模版使已有的应用逐步迁移到vue更为容易
c) 也可以使用其他模版处理器(如Pug)来书写vue模版
CSS
React中CSS作用域是通过CSS-in-JS的方案来实现的(style-component)
Vue也支持CSS-in-JS(styled-component-vue),vue中设置样式的默认方式是单文件组件中style标签(scoped则是防止样式覆盖)。通过vue-loader来对.vue文件进行编译