react.js,angular.js,vue.js学习哪个好?



不一样的框架Angular2.0是强化html语法,Angular2.0的模板引擎非常强大。
React强化js,有人提建议说React要是可以加上模板引擎语法就好了,我是不太认同的。当你真正理解React的时候你就会体会到它的优点.......


一、
angular 用angular cli 搭建环境(一步到位)angular/angular-cli,加上官方文档(基本有实例)基本可以做项目了。

个人最喜欢angualr2 有3点:

(1)、组件间的相互通讯,通过ViewChild可以访问引用组件的内部属性、方法。通过EventEmitter可以调用父组件的方法,简直太方便了。写起通用组件简直是得心应手。

(2)、模板引擎[class.class-active]、[hidden]等等,还有内置的那些指令*ngIf、*ngFor等等。你会爱上这种写法的。

(3)、写angular2请用上TypeScript;虽然从javascript转过来对于强类型控制有时候会觉得挺繁琐的。但是它确确实实能给我们提供很多有便利,比如angualr的表单。所以,务必、一定要用TypeScript。

至于双向绑定什么的,基本上每个上手angular的人都会马上去了解,我就不说了。

很多人说angualr很重,但是这个重是在于它给你提供了一切你想要、或者说你可能会用到的库(比如:react中做http通讯,那你就必须引入第三方的库如 isomorphic-fetch 等等,然而,在angualr2中直接提供了http库@angular/http;再比如:react中路由,那你需要引入react-router,然而在angular2中直直接提供了Router功能,angualr 2 官方文档是我见过的最完善的文档,还配套了那么多可运行的实例,太贴心了,好好阅读必然有收获)。
然后,用angualr写动画简直太方便了,甩react两条街(虽然我一直是react的拥护者,但是用react写起动画来好痛苦)
这里有基于angular2.0搭建的小程序(大家可以参见):

coocssweb/angular-mobile

最后,可能是因为刚上手没有做过完整项目原因,感觉angular写到后面,业务复杂了,逻辑复杂了,一个页面的代码会越来越多.......也许是我模块化得不够细吧。

二、react,react其实上手不会复杂。但是依稀记得很久以前刚开始学react的时候,配置环境要了我半条命(特别是有些npm包要instal半天的时候,基本上快奔溃了.....l )。

我想学刚开始了解reac都会了解到它的虚拟dom,然而这些对于初学者来说太飘飘然了。

说说我用react的感受吧。

(1)组件模块化,用React会很容易让你想细化你的模块,让你的页面代码非常的精简。比如一个List页面,至少可以分 List、Item、Pager等等几个细化的模块(react文档上介绍的复合组件)。

(2)CSS模块化,在用React时,一般每个组件都会建一个对应的CSS文件,而你不用担心这些CSS里面的命名会相互影响。可以通过在webpack中配置css生成的命名规范,从而让你的这些CSS页面在最终构建的时候不会互相影响。当然,难免需要一些共用的CSS,而这个时候你可以用composes的方式进行共用;详细请参见 如何在 React 中运用 CSS?

(3)数据流处理,一开始我是用了一段时间的Flux,挺喜欢它的单项数据流模式。但是特别讨厌我必须在每个页面内添加监听,来监听数据变化,然后重新渲染页面。

当看到,Redux的时候,思想上瞬间高潮了。通过redux你可以完全实现View组件和逻辑组件的分离(Container) 通过在container组件里connect 来链接[ store、action] 和 view组件间的关联。就可以实现到View组件确确实实的是干净的react组件,只做页面上的一些布局和逻辑;container组件负责store、action转化为props让view组件调用。这样组件都是干净的。

Redux的异步数据请求上的处理,自己封装一个基础类。然后就可以实现下面的这种写法;完全可以大大加快你的开发效率

//GET_LEAD_LIST_REQUEST、GET_LEAD_LIST_SUCCESS、REQUEST_ERROR 为Action Type
//分别处理,开始请求、请求成功、请求出错
export function getLeadList_(params) {
return {
assembleMode: SINGLE_REQUEST_MODE,
actionTypes: [ GET_LEAD_LIST_REQUEST, GET_LEAD_LIST_SUCCESS, REQUEST_ERROR ],
service: () => leadService.getLeadList(params)
    }
}
(4)关于React Native 环境搭建可以参照文档,React项目中View组件需要重新写过,因为React Native中只支持Flex布局,然后样式也有限制,刚开始用的时候,难免踩坑,好在React Native的论坛非常的活跃。

本地数据存储(用来做App本地数据存储)建议可以用RealM,RealM有专门推出适用于React Native的版本,语法简洁。感觉从web到native的开发,更多的是观念上要有一些转变,比如什么时候同步服务端的数据到本地数据,那些数据需要同步,还有同步的时间戳等等。建议可以看一些native开发数据方面的文章,全面了解一下。

就这样学了React你就可以开发Web端和App端了。我爱React

我的一个react组件库,好久没更新了大家可以参见。coocssweb/react-plug
当然我的git上还有flux 和 redux的一些项目


三、vue 我不能评论.....也不太想评论。因为我们去学一个框架,并不会是因为它简单......


四、既然用了这些框架,就尽量不要再去导入jQuery这种直接操作dom的库了.......

回到题主的问题,angualr2 、 react 、 vue学哪个好?

我觉得是看你目前的需求需要。我可以确定的是,如果你完整的学好一个 框架,再想去学两一个框架,其实是很快。生命不息,学习不止......加油共勉。

posted on 2017-02-06 10:06  867511789  阅读(213)  评论(0编辑  收藏  举报

导航