react与vue的对比

模板:

Vue
Vue应用的默认选项是把markup放在HTML文件中。
数据绑定表达式采用的是和Angular相似的mustache语法,而指令(特殊的HTML属性)用来向模板添加功能。

React
它要求开发者借助JSX在JavaScript中的render()中创建DOM

渲染函数更加容易调试和测试,Javascript模板可以组织成具有很好的分解性和干(DRY)代码的组件,干代码的可重用性和可测试性更好
模板容易出现很难注意到的运行时错误,同时也很难去测试,重构和分解;
vue
2.0中vue也增加了渲染函数,但是React的渲染系统可配置性更强

数据状态:

React

state是不可变(immutable)的,所以不能直接改变,需要使用API中的setState方法:
this.setState({ 
    message: this.state.message.split('').reverse().join('') 
});

Vue
数据是可变(mutated)的,所以同样的操作看起来更加简洁。
this.message = this.message.split('').reverse().join('');
Vue的响应系统还有有些坑的,例如:它不能检测属性的添加和删除和某些数组更改。这时候就要用到Vue API中的类似于React的set方法来解决。

数据渲染速度:

都是将虚拟DOM并同步到真实DOM中
Vue核心开发者提供了一个benchmark测试,可以看出Vue的渲染系统比React的更快,同时vue更轻量

跨平台

React
React Native是一个使用Javascript构建移动端原生应用程序(iOS,Android)的库。 它与React.js相同,只是不使用Web组件,而是使用原生组件。
Vue将HTML模板作为它设计的核心部分,并且现有特性不支持自定义渲染,因此很难看出目前的Vue.js的跨平台能力能像React和React Native一样强大。

总结:

ue的优势是:

  • 模板和渲染函数的弹性选择
  • 简单的语法和项目配置
  • 更快的渲染速度和更小的体积

React的优势是:

  • 更适合大型应用和更好的可测试性
  • Web端和移动端原生APP通吃
  • 更大的生态系统,更多的支持和好用的工具
原文地址:https://www.cnblogs.com/avidya/p/7472030.html