知乎pure render专栏创办人@流形:选择React这条路,很庆幸

本文仅用于学习和交流目的,不得用于商业目的。非商业转载请注明做译者、出处,并保留本文的原始连接:http://www.ituring.com.cn/Art...前端

图片描述

陈屹(流形) react

前端架构师,就任于阿里巴巴。热衷开源事业,终年专一于前端架构、数据可视化、Node.js等领域,知乎专栏pure render的创办人。程序员

segmentfault社区活跃地址:https://segmentfault.com/u/ar...web

图片描述

专栏写做近一载,积累了 24 篇经典沉淀,大都关于 React 相关的原理与实践分享展开。《深刻 React 技术栈》的部份内容就基于专栏文章,经过整理提炼、纠错与升级,内容更加科学、系统。为了照顾到深度,还有不少内容彻底从新编写,系统讲述了 React 与其技术栈的使用方法及工做原理。npm

访谈内容

前端技术那么多,为何选择了React?编程

当初选择 React 的理由很简单,只是为了解决业务上的痛点。前年,产品架构仍是 jQuery 和 Backbone。但随着产品的业务复杂度不断增长,数据层的逻辑基本上仍是链路很短的数据请求,而 View 层的交互逻辑却变得愈来愈复杂,难以维护。segmentfault

选型时,Angular 和 React 是重点考虑的两个对象。其中,Angular 比较成熟,也积累了不少粉丝,虽然尝试过,但不符合咱们的场景,须要对现有构架做出较大的调整。咱们须要的是,更轻量级、不绑定某种架构的技术,并且最重要的是,方便组件化的选择。实践后,决定下注 React。用 React 封装了一套组件与Backbone model 配合。微信

选择核心技术或库时,须要对业务担责。高成本的重构会给业务带来没必要要的影响。发展、可持续、承前启后的考虑是首要的。前端工程师

随着业务的发展,团队也在不断成长,不断探索着最佳实践方案。如今从新回顾一路的发展,很是庆幸选择 了 React。antd

如何看待一样以“轻便、易上手”著称的Vue?跟Vue相比,React有哪些优点?

Vue 使用的是 web 开发者更熟悉的模板与特性,React 的特点在于函数式编程的理念和丰富的技术选型。Vue 比起 React 更容易被前端工程师接受,这是一个直观的感觉;React 则更容易吸引在 FP 上持续走下去的开发者。我想更多仍是口味的不一样。

若是必定要说 React 的优点,就是它活跃的生态圈。在 npm 社区搜索 React 关键词,会出现 21k+ 的库,而开源时间更久的 Angular 却只有 9k+,足可见开发者对其追捧的程度。另外,React 仍是 FB 技术布局上重要的一部分,包括已开源的 React Native,将来的 React VR。固然,Vue 也有 Weex。

React 和 Vue 二者发展速度都很快,对于产品技术选型来讲,活跃程度与生态发展可能比库自己带来的优点更为重要。如今的框架之争太多,个人建议是,当你选定以后,不必急着切换,由于它们均可以完成中大规模的应用。从学习的角度,二者都值得学习。

编写《深刻React技术栈》的缘由有哪些?它的独特之处在哪里?

写这本书的时候,国内只有一本 React 相关的的入门书籍,并无深刻细节与实践方面的内容。而在这方面,pure render 专栏沉淀了不少经验。同时,踩过不少坑的经验,让我相信本身有能力写一本书更好地回馈社区。在此,感谢编辑老师的信任,战友们、朋友们给予的支持和鼓励。

要说本书的独特之处,必定在于每一部分都会去分析源码。尽管源码并非开发者所要关注的,我想传达的是,读源码是学习技术最方便的途径,尤为对于很是活跃的前端开源社区来讲

《深刻React技术栈》一书中,为何会选择“组件化、Flux和Redux、server、可视化”四个维度来说解React?

全书从 React 组件化的思想和用法讲起,再讲到其背后的原理。组件化是前端工程中很是重要的部分,自前端开发的早期,工程师就一直在尝试用面向对象的理念来封装组件,直到今天也没有停下来。

到富客户端应用的年代,只有组件化已经不够了,先驱们借来了分层思想,先是 Backbone 站在了高点,到后来的百花齐放。说到 React 技术栈,Flux 应用架构起了个头儿,到 Redux 的诞生,算是完成了工程化的最后一块拼图,这是一个渐进的发展过程。结合 server render 完整打通了今天前端架构 SPA 的全部部件。

可视化在前端圈的地位很独特,已经有愈来愈多的前端转向专职的可视化工程师。可视化在这个领域有着不一样于传统前端的开发方式,书中的内容也只是结合 React 开发的实践而已。

说到可以写做的程序员或是可以编程的做家,这两种人都是至关稀少。写完《深刻React技术栈》一书,能够给咱们分享下你的切身感觉吗?

其实在互联技术上并很多吧。在国内知乎,SegmentFault,还有各类社区博客上能够看到很多善于分享的大咖。

说说写书过程当中的感觉。其实,从一开始的思路到最后成型的布局,之间产生了不小的改变,即便到最后时刻目录都在变更,真是不断挑战着本身。何况,React 技术栈在半年里的变化也不小,我会担忧内容过期,承受很快被淘汰的命运,也许每一位技术书的做者都会经历这种痛苦。

固然,看到不少读者给我发来私信,表达学习到不少知识的时候,我想付出的一切都是值得的吧。

在知乎上创办专栏pure render,在SegmentFault等技术社区分享知识,不会分散精力影响技术研究吗?

分享并非任务,是技术研究的一部分,并不会分散太多精力。我曾经说过,写文章并不单是为了别人,它能够把本身的想法或成果记录下来,是一件比较纯粹的事。

写文章也是为了交流。交流,更确切地说是,思想上的碰撞,碰撞那些还不坚决的想法,在说服与被说服的过程当中共同进步。你理解了他人的经验,也完善本身的经验世界。

创办pure render专栏也有带领前端团队在技术道路上做沉淀的考虑。每一篇文章我或团队都会做审核,指望量少而精。如今,我也会试着邀请一些优秀人士给更多关注的朋友分享技术。

我了解到,你热衷开源事业。有哪些React开源项目推荐给你们学习?

如以前所说,React 社区在前端社区是很是活跃的,这一点很是像过去的 jQuery 开源社区。有很是多的轮子能够选择,却也带来选择上的困扰。

我在书中基本上把应用所须要的库都有说到。组件库方面,antd 已经被你们熟悉,若是想要定制组件,在 antd 背后的 react-component 作得也是很是优秀。另外,material-ui 也是一个很好的选择,尤为对于喜欢这套 UI 的开发者。

早期, Flux 衍生框架很是多,直到社区出现了 Redux、React Router、Redux Saga,Immutablejs 等最佳实践后才算消停。固然,若是你仍是一个新手,仍是建议你坚持使用 Redux,理解 Redux。

可视化方面,仍是要推荐一下 Recharts。这个可视化库,是基于 React 和 D3,很是符合 React 构建组件的思想。

React 优秀的开源项目每周每个月都会有,关注社区的动态也是咱们前端工程师必备的技能。

读者但愿陈老师能分享下你本身“从刚接触前端到如今拥有如此的技术沉淀”一路上的经验。若是真要踏上React学习之路,有哪些“坑洼”是值得注意,哪些“美景”是不容错过的?

我了解到,不少刚开始学习前端的学生就想一头扎到 React 或其它体系中去,这是很是危险的想法。好比我在专栏中提过,去 jQuery 的决定是和应用自己的特质相关的。若是说只是很简单的页面,并无太多和服务端交互的内容,我仍是首推 jQuery。所以,在你踏上 React 学习之路前,还请打好基础尤为是 DOM。

对于“坑洼”或是“美景”,我就说两点。第一,关注组件的复用粒度,尽量保持组件的可扩展性,支持可控与不可控。第二是数据层的抽象,不一样的业务须要有不一样级别的数据抽象,有些越简单越好,有些封装得越厚越好。最重要的是根据业务的须要,保持界面与数据抽象的平衡。

在研究React的道路上,将来你会专一哪些方向?

走在 React 这条路上,很容易思考函数式编程的各类特性对复杂应用带来的好处。但函数式编程在生产环境中会对业务抽象带来更高的难度。不少人都在尝试用 React 的理念创造小而美的轮子,如 inferno,也可能会本身实现一套去匹配业务的须要。

说到将来,我可能会关注 FRP,它简化了现有架构的概念,更适合于用户界面的开发。Mobx 就做出了不少努力,一样,我也会关注更纯粹的 elm、cyclejs 这些 FRP 框架。


——更多访谈


更多精彩,加入图灵访谈微信!

相关文章
相关标签/搜索