题外话:学习了jQuery后,就在公司接触了Angular,第一次接触的时候,简直一脸懵逼呀,对于曾经习惯了对DOM元素进行操作的我真的好难好难,对于曾经没工作经验的我,Angular1入门还是比较难的,还好,努力克服了这个坎。在一次公司的开会中,领导提出了一点问题,controller中的各种变量、方法声明乱七八糟的,代码看起来一点都不规范,然后提到了一点,就是关于代码模块化(即声明全部堆在一块,方法全部放在一块,逻辑代码放在一块,外部引用放在一块)大致这种意思,当时我就觉得这种idea很好(现在angular2恰好满足了),但是Angular中我胡乱排序也不影响页面,哈哈。。。。直到有一天偶然看见了,Vue.js,当时一看,我靠,差点骂脏话了,这个不就是和Angular差不多的嘛,Angualr是ng-,Vue是v-,网上一搜,原来Vue开发者(中国人,还挺帅的哟)曾经在谷歌公司任职过,难怪呀,看来他深受Angular的影响呀,哈哈。Vue代码就很规范,恰恰满足了领导的要求呀,好想跟领导说我们公司全部转Vue吧。。。。。。后面,我机缘巧合之下去做了RN开发,用的是React,react感觉好像angular的指令呀。。通过看三者的官方文档,我发现,这三家许多方面的设计思想都很相似,感觉只要学会精通了一种,学习其他两个真的不成问题呀,所以我做RN上手非常快,通过官方文档,能够直接上手写代码,改bug。

一、Angular特性:

  1. 由自己实现一套模板编译规则,数据变化依赖脏检查,
  2. 基本属性包括:数据双向绑定、基本模板指令、自定义指令、表单验证、路由操作、依赖注入、过滤器、内置服务、自定义服务、组件、模块。
  3. 运行效率较低,数据变更检测方式。
  4. 学习angular会迫使你学习特有的预发,上手成本很大,代码看起来很干净
  5. 依赖注入,即一个对象将依赖项提供给另一个对象(客户端)的模式。导致更多的灵活性和更干净的代码。
  6. Angular 最适合单页应用(SPA),因为它可能太臃肿而不能用于微服务。
  7. 框架比较臃肿,每次用啥功能要引入一大堆东西
  8. Angular错误提示不够清晰明显,对于初级开发者,很难看懂Angular的错误提示。(个人认为这是最大的不好之处,当初学习这个遇到很多坑啊),而且定位bug很难。
  9. 面向对象编程的思想,Angular由后端开发人员设计的前端框架。

详细比较:React和Vue的区别

二、React特性:

  1. 单向绑定,先更新model,然后渲染UI元素,数据在一个方向流动,使得调试更加容易。代码冗余,各种生命周期太麻烦,刚开始接触好难记。
  2. 用了虚拟DOM。(对虚拟DOM的理解刚开始我不是很理解概念,建议大家去看【深入REACT技术栈】这本书有很好的讲解)
  3. 更适合大型应用和更好的可测试性
  4. Web端和移动端原生APP通吃
  5. 更大的生态系统,更多的支持和好用的工具
  6. 组件生命周期
  • constructor
  • componentWillMount
  • componentDidMount
  • componentWillUpdate
  • componentDidUpdate
  • render

三、Vue特性

  1. 模板和渲染函数的弹性选择
  2. 简单的语法和项目配置
  3. 更快的渲染速度和更小的体积四
  4. 生命周期
  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated
  • beforeDestory
  • destoryed

四、Vue和React共同点

  • 用虚拟DOM实现快速渲染
  • 轻量级
  • 响应式组件
  • 服务端渲染
  • 集成路由工具,打包工具,状态管理工具的难度低
  • 优秀的支持和社区

 

Logo

前往低代码交流专区

更多推荐