1、在 React 中,⼀切都是 JavaScript。HTML 可以⽤ JSX 来表达。Vue 的整体思想是拥抱经典的 Web 技术(采⽤template⽅式,⽐如v-on 的各种修饰符,在 JSX 中实现对应的功能会需要多得多的代码),事实上 Vue 也提供了render渲染函数 ,甚⾄⽀持 JSX。
2、在 React 中,现在的潮流也越来越多地将 CSS 也纳⼊到 JavaScript 中来处理(有其优越性,具体不详说),通过依赖引⼊css模块,⽽Vue 可以让你在每个单⽂件组件中完全访问 CSS,⽅便的规定css作⽤域,也可引⼊css模块。
其他
1、两者另⼀个重要差异是,Vue 的路由库和状态管理库都是由官⽅维护⽀持且与核⼼库同步更新的。React 则是选择把这些问题交给社区维护,因此创建了⼀个更分散的⽣态系统。但相对的,React 的⽣态系统相⽐ Vue 更加繁荣。
2、从两者提供的路由、状态管理器等向上扩展来看,Vue、 React做得都⽐较完善,从向下扩展来看,Vue就类似于 jQuery。你只要把如下标签放到页⾯就可以运⾏:
<script src="unpkg/vue/dist/vue.js"></script>
3、本地渲染。ReactNative 能使你⽤相同的组件模型编写有本地渲染能⼒的 APP(iOS 和 Android)。
能同时跨多平台开发,对开发者是⾮常棒的。相应地,Vue 和 Weex 会进⾏官⽅合作,Weex 是阿⾥的跨平台⽤户界⾯开发框架,Weex 的 JavaScript 框架运⾏时⽤的就是 Vue。这意味着在 Weex 的帮助下,你使⽤ Vue 语法开发的组件不仅仅可以运⾏在浏览器端,还能被⽤于开发 iOS 和 Android 上的原⽣应⽤。当然在现在,Weex 还在积极发展,成熟度也不能和 ReactNative 相抗衡。
4、Vue.js在模板中提供了指令,过滤器等,可以⾮常⽅便,快捷地操作DOM。
Angular
Angular1 是⽐较新的技术,版本 1.0 是在 2012 年发布的。
AngularJS2 发布于2016年9⽉份,它是基于ES6来开发的。
Angular2.x与Angular1.x 的区别:Angular2.x与Angular1.x 的区别类似 Java 和 JavaScript 或者说是雷锋与雷峰塔的区别。
angular主要优点
1.双向数据绑定,数据绑定可能是AngularJS最酷最实⽤的特性。它能够帮助你避免书写⼤量的初始代码从⽽节约开发时间。⼀个典型的web应⽤可能包含了80%的代码⽤来处理,查询和监听DOM。数据绑定是的代码更少,你可以专注于你的应⽤。
2.代码模块化,每个模块的代码独⽴拥有⾃⼰的作⽤域,model,controller等。
3.强⼤的directive可以将很多功能封装成HTML的tag,属性或者注释等,这⼤⼤美化了HTML的结构,增强了可阅读性。
react开发框架4.依赖注⼊,将这种后端语⾔的设计模式赋予前端代码,这意味着前端的代码可以提⾼重⽤性和灵活性,未来的模式可能将⼤量操作放在客户端,服务端只提供数据来源和其他客户端⽆法完成的操作
Angularjs-缺点
1.验证功能错误信息显⽰⽐较薄弱,需要写很多模板标签
2.从1.0.X升级到1.2.X,貌似有⽐较⼤的调整,没有完美兼容低版本,升级之后可能会导致⼀个兼容性的BUG
<提倡在控制器⾥⾯不要有操作DOM的代码,对于⼀些jQuery 插件的使⽤,如果想不破坏代码的整洁性,需要写⼀些directive去封装插件,但是现在有很多插件的版本已经⽀持Angular了,如:jQuery File Upload Demo</p>
4.AngularJS 太笨重了,没有让⽤户选择⼀个轻量级的版本,当然1.2.X后,Angular也在做⼀些更改,⽐如把route,animate等模块独⽴出去,让⽤户⾃⼰去选择。
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⼀般应⽤于⼤型的项⽬

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。