Vue与AngularJS的区别
Angular
采用TypeScript
开发, 而Vue
可以使用javascript
也可以使用TypeScript
AngularJS
依赖对数据做脏检查,所以Watcher
越多越慢;Vue.js
使用基于依赖追踪的观察并且使用异步队列更新,所有的数据都是独立触发的。AngularJS
社区完善,Vue
的学习成本较小
Vue与React的区别
vue
组件分为全局注册和局部注册,在react
中都是通过import
相应组件,然后模版中引用;props
是可以动态变化的,子组件也实时更新,在react
中官方建议props
要像纯函数那样,输入输出一致对应,而且不太建议通过props
来更改视图;- 子组件一般要显示地调用
props
选项来声明它期待获得的数据。而在react
中不必需,另两者都有props
校验机制; - 每个
Vue
实例都实现了事件接口,方便父子组件通信,小型项目中不需要引入状态管理机制,而react
必需自己实现; - 使用插槽分发内容,使得可以混合父组件的内容与子组件自己的模板;
- 多了指令系统,让模版可以实现更丰富的功能,而
React
只能使用JSX
语法; Vue
增加的语法糖computed
和watch
,而在React
中需要自己写一套逻辑来实现;react
的思路是all in js
,通过js
来生成html
,所以设计了jsx
,还有通过js
来操作css
,社区的styled-component
、jss
等;而vue
是把html
,css
,js
组合到一起,用各自的处理方式,vue
有单文件组件,可以把html
、css
、js
写到一个文件中,html
提供了模板引擎来处理。react
做的事情很少,很多都交给社区去做,vue
很多东西都是内置的,写起来确实方便一些, 比如redux
的combineReducer
就对应vuex
的modules
, 比如reselect
就对应vuex
的getter
和vue
组件的computed
,vuex
的mutation
是直接改变的原始数据,而redux
的reducer
是返回一个全新的state
,所以redux
结合immutable
来优化性能,vue
不需要。react
是整体的思路的就是函数式,所以推崇纯组件,数据不可变,单向数据流,当然需要双向的地方也可以做到,比如结合redux-form
,组件的横向拆分一般是通过高阶组件。而vue
是数据可变的,双向绑定,声明式的写法,vue
组件的横向拆分很多情况下用mixin