- 4
- 0
- 约 5页
- 2016-11-26 发布于重庆
- 举报
别责怪框架我使用AngularJS和ReactJS的经验
别责怪框架:我使用 AngularJS 和 ReactJS 的经验在过去的几年里,网站进化成了复杂的网页应用。曾经的互联网只涉及到简单的商业信息展现,而如今,看看 Facebook、Slack、Spotify 以及 Netflix,互联网正在改变你的社交和生活方式。随着互联网的发展,前端开发这个行业达到了全新的高度,并得到了前所未有的重视。就像大多数前端开发者那样,我们的技术栈曾经由 HTML 和 jQuery 构成。我们使用 AJAX 请求从后端获取数据,使用 JavaScript 渲染新的 UI 元素然后将它插入到 DOM 中去,用户交互通过事件绑定和回调函数来实现。不要误解我,我不反对上面那种方式,它们今天依然适合于大多数 Web 应用。然而,当一个应用的复杂度大幅度增加,/posts/186-lessons-learnt-by-building-singleapplications一堆问题开始出现得比预期的更频繁:你可能数据更新了,但漏掉了更新某一处展现,你通过 Ajax 获取和更新了内容,但没有绑定事件,还有另外一些问题,把这些全部列出来会是个很长的清单。这些问题让你的代码逐渐变得不可维护,尤其是在多人协作团队开发的项目中。这时候,你就需要使用前端框架来为你解决多人协作开发的种种问题了。!–more–1. React 福音当我们的团队开始寻找一个合适的前端框架的时候,我们考虑了许多选择,最后留下两个选项 ——?/Angular?和React。Angular 是目前为止最成熟的方案:它拥有一个庞大的社区,你可以为大部分应用场景找到合适的第三方模块。React 也很有竞争力,它以 JavaScript 为中心的设计看起来很有前途,而且它性能很好。虽然它还是 Beta 版本,但是 “由Facebook团队开发的” 这一点给它的竞争力加分。我们决定给 React 一个机会,选择了使用它。最初使用 React 让人感觉棒极了,我们可以用 JavaScript 来做一切:展现一段 HTML,通过遍历数组渲染一个列表,优雅地改变一个变量的值,然后看着它通过?https://facebook.github.io/react/docs/transferring-props.htmlprops?传播到各处,更新要更新的内容到可复用组件里,然后一切就绪了,没有一坨一坨的代码,只有真正的https://facebook.github.io/react/docs/thinking-in-react.html停下来思考。React 解决了我们在团队开发中编写可维护代码的诉求。2. React + Flux = ?但沿着这条路走下去,我们发现并不是一切都很美好。我们遇到的第一个大挑战就曾让我们考虑是否应该放弃 React —— 我们陷入了回调迷宫。由于 React 的单向数据流性质,如果子组件需要更新父组件的状态,父组件就要传一个回调函数给它。这咋看起来没有什么大不了的,然而如果你的组件要更新 root 组件的状态,你就不得不将 “ps.updateCallback” 沿着数据流一层一层传递下来。尽管如此,我们喜欢 React,继续使用它完成我们的工作。通过努力,我们找到了?https://facebook.github.io/flux/Flux,它是一种规范化单向数据流的架构思想。它由四个主要元素构成。Store: 负责存储数据和应用状态。Action: 触发状态改变。Dispatcher: 管理 action 并将它们导向对应的 store。View: 展现 store 中的数据,派发 action - 这块是 React 中已有的。采用 Flux,我们就不用将状态保存在 root 组件中,然后将 update 回调一层层传递给它的子组件。React 组件通过 store 直接获得数据,通过调用 action 来改变状态:这样简单、优雅,不会让你抓狂。Flux 补充了可预测的行为和一些标准到被 React 框架约束的代码中。3. 狂野的 Angular 出场…………它采用以 HTML 为中心的代码且并不超有效。最近,我开始参与一个 Angular 项目。我加入的时候这个项目已经完成了很大一部分了,所以不得不用 Angular,没有回头路。作为一个忠实的 React 开发者,我吐槽 Angular。当我开始写第一行 Angular 代码的时候,我就真心诅咒它。这就是所谓的:如果你爱 React,那你就恨 Angular。我不能自欺欺人,在一开始,我写 Angular 代码一点也不开心。将框架定义的属性(或者,更恰当地说法是 directives)写入到 HTML 中的做法让我感觉很不爽。我得费很大劲才能实现很简单的功能,比如改变 URL 的时候
您可能关注的文档
- 假如用一个小型的公司或者企业像要搭建一个双处理器服务器.doc
- 偶发分枝杆菌感染综述.doc
- 傅雷中学2009学年第一次月考六年级数学试卷.doc
- 储能技术的研究.docx
- 光影魔术手的应用与心得体.doc
- 全国10春理论题1~5答案.doc
- 全国2005年10月高等教育自学考试心理学试题课程代码00031.doc
- 全国中小学学籍信息管理系统导出数据流程.doc
- 全国各地中考数学试卷分类汇编数据的分析(80页).doc
- 八年级上册Unit10.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 髌骨脱位康复护理新进展.pptx VIP
- 58同城加盟合同范本.docx VIP
- 急救医学-第四章心悸.ppt VIP
- 高中数学必修第四册第十一章综合测试01含答案解析.pdf VIP
- 2022年高考物理核心高频考点专题22 圆周运动的轻绳、轻杆模型(解析版).pdf VIP
- 马工程-中国古代文学史(第二版)上册第三编魏晋文学全套PPT课件50109.pptx
- 马工程-中国古代文学史(第二版)上册第二编秦汉文学全套PPT课件-50109.pptx
- 58同城同镇代理加盟流程说明.docx VIP
- 马工程-中国古代文学史(第二版)上册第一编先秦文学全套PPT课件-50109.pptx
- 58同城加盟合同范本.docx VIP
原创力文档

文档评论(0)