文档章节

ReatJs

wangxu871023
 wangxu871023
发布于 2016/07/25 18:43
字数 1095
阅读 20
收藏 0

作者:郑炜韬
链接:http://www.zhihu.com/question/35767399/answer/64530124
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

鉴于我只是入门,而且私觉得题主在问React入门的问题,我就说说自己入门的经历好了
------

这段时间刚好用React搭建了一个简单的网站,此前基本没多少实际的前端开发经验,因为我都是写后端服务的,然后之前也接触过AngularJS,但是也没实际应用于应用开发中,这次头脑发热想用React作为前端MVC的V,其实大体上也就用了几天时间吧,就【入门】了,至少题主说的JSX什么的,我觉得并不难,一开始只是比较恶心,觉得大量JS和大量标签混在一起写不是很好的风格,所以至今还无法全然接收React的风格,但是也没觉得有多难,懂一点HTML,参照着文档就可以搞出来。

至于我是怎么学的呢?其实就是看官方文档,学Anugular的时候我还专门跑到国内某比较有名的IT学习网站去看了几位名人的讲解,现在想想都没有带着实际的项目开发需求去学习来得靠谱。

首先按照自己的思维写了个大概,页面中几个重要模块我都进行了独立拆分,各自逻辑开发完后我突然发现,模块之间怎么通信呢?好的,React提供了Flux,我又花了大半天把Flux理解了一遍,发现自己来写似乎比较烦,于是还自学了一些NodeJS(此前有了解过Node),用EventEmitter写了一个简单的全局事件机制,终于可以愉快地完成我那几个独立模块的通信和同步了,OK,网站逻辑完成。

但是我深深地觉得这样的网站始终有问题,于是稍稍深入看了一下React文档(其实也就那么一些罢了),突然我发现,我模块化网站内容的方式不对,本可以被组织到一个高层组件的模块全都被我独立拆分了,导致到处都是事件订阅和通知,于是我重新整理了一下,用一个高层组件处理数据模型更新,再通过props传递自动完成其他组件的自动更新,于是乎我发现,整个JS的逻辑变得很清晰简单。而对于确实是独立的组件间通信,我们有一些别人实现好的Flux框架可以用。

总体来说,我个人觉得我应该了解到的React基本齐全了,因为按照官方文档的内容,我觉得已经掌握地差不多了,这个时候我自称我自己的React水平是:【入门】(难道不是吗,你打我呀)

期间还要写写后台逻辑,还因为不喜欢手动转换JSX而找了一堆前端模块化和构建工具,首先是简单地用seajs,发现不好,又考察了browserify,和webpack,了解了webpack配置文件的编写。

总之,我就这么入门了(各位前端大侠轻喷,我只是临时过来写前端的)。

那么,React入门难吗,对于我这种没有太多前端工程经验,顶多帮别人用jquery写写ajax的程序员来说,都觉得还好。

而AngularJS呢?我觉得就像题主说的,入门也不难,但是必然也会在实践中踩一些坑,然后把写好的代码重新构造一遍,这个时候往往是刷新自己对框架认知的时候,这一步是很重要的,一定要硬着头皮上。当然如果这一步有高人在一开始给你点明,估计入哪个们都不难。

最后个人觉得,React全量的高效刷新比起AngularJS绑定更新来说还是方便一些的,整套逻辑的数据流动很简单清晰,从上到下,子组件都是弱状态或者无状态,一致性比较好保证。

有机会还是想实际用用AngularJS,说不定又是一次奇妙的开发经历。

说得不对的,请轻拍指正~

© 著作权归作者所有

共有 人打赏支持
wangxu871023
粉丝 0
博文 8
码字总数 2233
作品 0
锦州

暂无文章

代理模式

自测: Q:何为代理模式? 代理是一种__或者__,控制对另一个对象的访问,而这些对象可能是__对象,______的对象,或者是对______的对象。 Q:那些角色及划分? 3个核心角色 角色一:____ 角...

阿元
24分钟前
0
0
面试经验

原文

火力全開
29分钟前
0
0
Kubernetes 教程(一) 环境安装并配置一个集群

Git<---------->jenkins docker<--------->kubernetes ?

MrPei
43分钟前
1
0
linux学习-0919

linux和windows互传文件 用户配置文件和密码配置文件 用户组管理 用户管理 一、linux和windows互传文件 linux和windows可以互相传输文件,但是需要使用xshell 并且安装lrzsz包: yum insta...

wxy丶
50分钟前
1
0
收集几个开源的微信小程序开发框架

1、 mpvue mpvue 是美团点评开源的一个使用 Vue.js 开发小程序的前端框架。框架基于 Vue.js 核心,mpvue 修改了 Vue.js 的 runtime 和 compiler 实现,使其可以运行在小程序环境中,从而为小...

哥本哈根的小哥
56分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部