vue和react

410 阅读4分钟

前端都知道3个主流框架,vue,react,anjular,当然目前最火的还是vue和react。

那么vue 和react 有什么区别?

vue-[

    vue:双向数据绑定和单向数据流。双向数据绑定:DOM元素绑定的data值,当发生改变后,
    vue的响应式机制会自动监听data的变化重新渲染。单向数据流:当父组件给子组件传递数据的时候,
    子组件只可以读取而不能修改数据。可以用watch监听数据的更改,再赋给父组件的变量。
    
    vue:具有单文件组件,可以把html、css、js写在一个vue文件里----MVVM框架
    
    API设计简单,语法简单,学习成本低。
    
    构建方面不包含路由和ajax功能,使用vuex,xue-router
    
    指令和组件(视图,数据,逻辑)处理清醒
    
    性能好,易优化
    
    独立触发
    
    v-model实时渲染
    
    适用于:模板和渲染函数的弹性选择,简单的语法及项目搭建
    
    更快的渲染和更小的体积
    
    缺点:不怕入门,缺少高阶教程和资料-vue不支持IE8
    
    生态环境不如Angular和react且社区不大

]

react-[

react:单向数据流。DOM元素依赖于state,但改变state不会改变渲染好的DOM,通过setState()才能重新渲染。
父组件传值到子组件,如果顶级的props变了,会重新渲染所有的子组件

react:依赖于jsx,在JavaScript中创建DOM----视图层框架

react速度快,不直接操作dom,虚拟dom概念,性能好,减少dom交互

跨浏览器兼容,帮助我们解决跨浏览器问题,提供了标准化Api,甚至在Ie8中也没有问题

一切都是component,

模块化,重用更容易,方便隔离,每个组件独立,可加载其他组件,维护性高

单项数据流:flux用于在js中创建的单项数据架构,随着react视图库而被facebook概念化

同构,纯粹的JavaScript:因搜索爬虫依赖的是服务器而不是JavaScript的执行,有助于搜索引擎化

兼容性好比如:require.js加载和打包,二browerify和webpack适用于大型应用

缺点:学习曲线高(深有感触....要学或者和我一样从vue转过来的学习曲线一定要提前规划好)

react只是视图库而不是完整的框架,将react集成到传统mvc中需要一些额外配置

代码复杂性 同内联jsx增加 

小组件过多反而不好

]

相同点:

  • Vue和其他框架一样,都有组件开发和虚拟dom
  • 都支持props进行父子组件之间的数据通信
  • 都支持服务器端的 渲染
  • 都支持native方案,React的react native_,Vue的WEEX
  • 都有管理状态,React有redux,Vue有自己的Vuex

不同点

  • Vue最大的优势,就是实现了数据的双向绑定(但现在vue绑定数组会出现问题需要额外操作), 而React是单向的。
  • React中是把html和css全都写进js中。而Vue采用的是模板,就是在html中写css和js,最后再用webpack和vue-loader进行打包,这种编码方式对于初学者而言是很舒服的
  • 在React中要想更新状态,必须调用setState方法,而在Vue中只需要通过this的某种方式去更新state中的数据,这种方式更加方便
  • React严格上只针对MVC的view层,Vue是MVVM模式
  • virtual DOM不一样,vue会跟踪每一个组件的依赖关系,不需要重新渲染整个组件树. 而对于React而言,每当应用被改变时,全部组件都会重新渲染,所以react中会需要shouldComponentUpdate这个生命周期函数方法来进行控制
  • state对象在react应用中不可变的,需要使用setState方法更新状态; 在vue中,state对象不是必须的,数据由data属性在vue对象中管理;
个人来讲现在两个框架我都有使用vue是一直用了些年(从脏渲染开始) react是间接性的学习 近几个月一直学react

个人喜欢简洁大方的框架(不做表态,我两个都想精通

从新人角度 我推荐由Vue入手 多接触的话推荐用react

总之呢萝卜白菜,各有所爱找到自己来电的才是最好的

给大家推荐两个参照吧

说vue>react的 传送门

说react>vue的 传送门