
前端都知道3个主流框架,vue,react,anjular,当然目前最火的还是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对象中管理;