vue和其他框架的对比

React

相似点

  1. 使用了虚拟dom
  2. 提供了响应式和组件化视图组件
  3. 分为核心库和其他库(如路由和状态管理)

不同点

  1. 运行时性能
    在react中,组件状态发生改变,会以该组件为根,重新渲染整个组件子树
    避免发生不必要子组件被重新渲染,要么使用PureComponent或者手动实现shouldComponentUpdate,并且可能用到不可变的数据结构
    使用PureComponent或者shouldComponentUpdate,必须保证该组件的整个子树渲染输出由props决定,不符合该条件会导致渲染结果可能不一致

而在vue中,组件的依赖在渲染过程中自动跟踪,默认自动获得shouldComponentUpdate,没有子树问题限制

  1. HTML&CSS
    在react中,一切皆JavaScript,不仅HTML用JSX来表达,CSS也被纳入JavaScript中,Vue是拥抱经典web技术,并进行扩展

  2. JSX vs Templates
    在react中,组件渲染依赖与JSX,JSX是使用XML语法编写的欧中语法糖,而JSX渲染函数,有以下优点
    (1)可以用完成的JavaScript功能构建试图页面
    (2)开发工具对JSX支持比现有的vue模板先进
    在vue中,其实也提供了渲染函数以及支持JSX,但是还是默认推荐模板,任何合乎HTML的都是vue模板
    (1)模板比JSX读起来自然,能提升传统HTML开发者的效率
    (2)基于HTML的模板易于迁移vue
    (3)设计师和新人开发容易理解和参与到项目
    (4)可以使用其他模板预处理器,如Pug书写vue
    (5)组件第一种为偏视图,推荐使用模板;第二种为偏逻辑,推荐使用JSX或者渲染函数,而表现类的组件多于偏逻辑

  3. 组件作用域内的CSS
    在react中,CSS作用域通过CSS-in-JS的方案实现,但在 JavaScript 灵活处理样式的同时,也需要权衡 bundle 的尺寸和运行时的开销
    而vue设置样式的默认方法是单文件组件里类似style的标签,单文件组件可以在同一个文件里完全控制CSS,将其作为组建的一部分
    在一个,vue单文件的样式设置是非常灵活的,通过vue-loader,可以使用任意预处理器,后处理器,甚至深度集成都在