angular与jquery区别
三个版本的输入数据绑定,都是单页面应用。
Angular
<body ng-app> <input type="text" ng-model="name"> <p>{{name}}</p> </body> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script>
jquery
<body> <input type="text"> <p></p> </body> <script src="jquery-3.3.1.js"></script> <script> $(function(){ $('input').keyup(function(){ let value=this.value; console.log(value) $('p').html(value) }) }) </script>
</head> <body> <div id="app"> <input type="text" v-model="message"> <p>{{ message }}</p> </div> <script> new Vue({ el: '#app', data: { message: 'Vue.js!' } }) </script>
显而易见的是,拥有双向数据绑定的angular用更轻量的代码做了相同的事。
1.从理论来看,jquery在创建之初了为了解决前端在浏览器之中的样式兼容性问题,它是一个js库,而angular是一种前端框架,前者是用于调用库来更便捷的写代码,后者是写代码在这个框架中,在它所创造的体系中进行实际的应用。
2.jquery不支持双向数据绑定,angular&Vue支持。
3.jquery的API大多数需要和DOM联系,而angular较少的使用DOM,避免了一定的重排重绘问题。
4.jquery应用于单页面程序开发,angular既适用于单页面开发,也被使用在app、云平台等多个整体应用中。
5.jquery主要用$+DOM进行协同开发,angular有一套自定义指令来进行使用,如ngIf ngFor ngModel等等。
6.与node&typescript结合的angular有着更强大的初始化项目能力,能够快速利用命令行创建初始项目。
angular和Vue
这两个都是双向数据绑定。不同的是
1.核心库与生态:Vue核心库较小,生态较新,angular核心库较大,生态较稳定。前者较易学习,后者相对较难。
2。双向绑定:Vue基于ES5中的getter/setter,angular基于它原生的模板编译规则和脏检查
缺点:
Vue:对IE9以下浏览器不支持,但性能较angular高效。
Angular:作用域有变化时,所有监听都需要重新被脏检查,监听越多angular越慢,脏检查循环需要执行多次。而解决这个问题对于前端来说并不容易。
3.指令不同:angular:ng-x Vue:v-x
4.angular由google维护,Vue由个人维护。
5.通信:Vue为了让通信数据流更清晰易懂,在不同组件间通信强制使用单向数据绑定,Angular双向数据绑定。