angualr有哪些优缺点?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jnshu_it/article/details/84473259

这里是修真院前端小课堂,每篇分享文从

【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】

八个方面深度解析前端知识/技能,本篇分享的是:

【angualr有哪些优缺点?】

大家好,我是IT修真院深圳分院第11期的学员叶泽彪,一枚正直纯洁善良的WEB程序员,今天给大家分享一下,修真院官网JS任务10,深度思考中的知识点——angualr有哪些优缺点?

 

1.背景介绍

AngularJS 诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款来自Google的前端JavaScript框架,也是SPA(single-page-application,单页应用)框架,体积小,但是功能强大,极大地简化了前端开发的负担,帮助开发者从事WEB开发,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签(指令)、依赖注入等等。

2.知识剖析

Angularjs-优点

1.双向数据绑定,数据绑定可能是AngularJS最酷最实用的特性。它能够帮助你避免书写大量的初始代码从而节约开发时间。一个典型的web应用可能包含了80%的代码用来处理,查询和监听DOM。数据绑定是的代码更少,你可以专注于你的应用。

2.代码模块化,每个模块的代码独立拥有自己的作用域,model,controller等。

3.强大的directive可以将很多功能封装成HTML的tag,属性或者注释等,这大大美化了HTML的结构,增强了可阅读性。

4.依赖注入,将这种后端语言的设计模式赋予前端代码,这意味着前端的代码可以提高重用性和灵活性,未来的模式可能将大量操作放在客户端,服务端只提供数据来源和其他客户端无法完成的操作

Angularjs-缺点

1.验证功能错误信息显示比较薄弱,需要写很多模板标签

2.从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级之后可能会导致一个兼容性的BUG

3.ng提倡在控制器里面不要有操作DOM的代码,对于一些jQuery 插件的使用,如果想不破坏代码的整洁性,需要写一些directive去封装插件,但是现在有很多插件的版本已经支持Angular了,如:jQuery File Upload Demo</p>

4.AngularJS 太笨重了,没有让用户选择一个轻量级的版本,当然1.2.X后,Angular也在做一些更改,比如把route,animate等模块独立出去,让用户自己去选择。

3.常见问题

Angularjs适用于做什么样的网站

4.解决方案

1.Web应用页面是非常适合AngularJS使用的,同样不需要SEO,同样可以多方模块化加载,而且经常需要页面上的调整,这样就能够发挥AngularJS的优势了。

2.AngularJS主要考虑的是构建CRUD(增删改查)应用。幸运的是,大多数的WEB应用都是CRUD应用。

5.编码实战

 

6.扩展思考

angularjs和vue的区别:

1、vueJS简单易学,而angularJS的上手较高;

2、vue专注于View层,主打的是快速便捷,而angularJS功能则比较全面,当然体量也较大,相对没有vue那么便捷;

3、angularJS的指令都是ng-xxx,而vueJS的指令都是v-xxx;

4、angularJS的所有指令和方法都是绑定在$scope上的,而vueJS是new出来一个实例,

所有的方法和指令都在这个实例上,一个页面上可以有多个vue实例,但是angularJS的对象只能有一个;

5、angularJS是由google开发和维护的,vueJS是由个人维护的;

6、vueJS一般用于移动端的开发,而angularJS一般应用于大型的项目

React的优点

1.React伟大之处就在于,提出了Virtual Dom这种新颖的思路,并且这种思路衍生出了React Native,有可能会统一Web/Native开发。在性能方面,由于运用了Virtual Dom技术,Reactjs只在调用setState的时候会更新dom,而且还是先更新Virtual Dom,然后和实际Dom比较,最后再更新实际Dom。这个过程比起Angularjs的bind方式来说,一是更新dom的次数少,二是更新dom的内容少,速度肯定快ReactJS更关注UI的组件化,和数据的单向更新,提出了FLUX架构的新概念,现在React可以直接用Js ES6语法了,然后通过webpack编译成浏览器兼容的ES5,开发效率上有些优势. 

2.React Native生成的App不是运行在WebView上,而是系统原生的UI,React通过jsx生成系统原生的UI,iOS和Android的React UI组件还是比较相似的,大量代码可以复用维护UI的状态,Angular 里面使用的是 $scope,在 React 里面使用的是 this.setState。 而 React 的好处在于,它更简单直观。所有的状态改变都只有唯一一个入口 this.setState(),Angular 就比较复杂,不知道背后使用了哪些黑魔法。同构的JavaScript 

3.单页面JS应用程序的最大缺陷在于对搜索引擎的索引有很大限制。React对此有了解决方案。 

React可以在服务器上预渲染应用再发送到客户端。它可以从预渲染的静态内容中恢复一样的记录到动态应用程序中。 

因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化

vue优点

Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。核心是一个响应的数据绑定系统。

Vue.js的特性如下:1.轻量级的框架2.双向数据绑定3.指令4.插件化

7.参考文献

参考一:https://blog.csdn.net/weixin_40346317/article/details/81144131

参考二:https://blog.csdn.net/qq_25633175/article/details/51464150

 

8.更多讨论

1.Vue和React共同点

vue,react 共性: 

虚拟dom实现快速渲染 

轻量级响应式组件 

服务端渲染易于集成路由工具,打包工具及状态管理工具

2.SPA vs. MPA

从字面上理解,SPA(单页面应用程序)整个应用只有一个页面,只加载一次Web静态资源,包括HTML+CSS+javascript,在导航过程中不需要重新加载渲染整个页面。而MPA恰恰相反,也就是每个页面都需要独立完整的从后端加载和渲染,早期的网站大多属于MPA。

3.可以说说双向绑定应用场景嘛?

最简单的应用场景是在用户提交表单信息后,实时的反应在视图上。比如我输入某某的名字,页面上直接显示欢迎某某。更多的应用场景,说到底也是给与用户实时反馈,增强用户体验。

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

PPT链接 视频链接

更多内容,可以加入IT交流群565734203与大家一起讨论交流

这里是技能树·IT修真院:https://www.jnshu.com,初学者转行到互联网的聚集地

猜你喜欢

转载自blog.csdn.net/jnshu_it/article/details/84473259