React学习(一)——React出现的历史背景以及前端开发的演变

简介

React 是Facebook 在2013年推出的一款前端框架。当他们在开发一个简单的功能的时候却一再出现“BUG”,所以需要一套新的框架用来解决传统前端的一些问题;

问题描述

开发FaceBook首页状态栏,要实时显示当前好友请求,消息列表、状态列表;但是当功能上线的时候会出现:如果有一条新的消息出现不能够及时的刷新显示的数字,但点开一条新的消息数字又不能够立即的修改;

  • 出现原因:

    1. 传统的UI操作关注太多细节
    2. 应用程序状态分散在各处,难以追踪和维护

      传统的前端页面我们一般使用Jquery进行布局和局部刷新,但是Jquery在操作HTML页面需要大量的DOM API进行DOM操作,关注太多细节

在图片上可以看到,通多相当多的dom方法才能操作页面进行局部更新,也就是说你要完成一个功能需要关注很多的细节

React出现的历史背景

对于以上的问题,React提出一个全新的概念:始终“整体”刷新页面

如上图所示:

传统的更新方式是:当有一天新的消息进来之后,我需要获得消息列表的DOM结构,在消息列表的DOM结构中获得已存在的消息记录,在把新增的消息添加到原来的DOM结构中

React 的更新方式: 当消息列表中的消息更新(增加、删除、修改);就始终更新消息列表组件,不在关注之前是否存在消息记录

前端开发的演变

静态页面阶段 ——> AJAX阶段 ——> 前端 MVC 阶段 ——> SPA 阶段

  1. 静态页面阶段

    传统的php、jsp等页面,都是静态页面阶段; 网站的前后端开发是一体的,即前端代码是后端代码的一部分。

    1. 后端收到浏览器的请求
    2. 生成静态页面
    3. 发送到浏览器
  2. AJAX 阶段

    AJAX 技术指的是脚本独立向服务器请求数据,拿到数据以后,进行处理并更新网页。整个过程中,后端只是负责提供数据,其他事情都由前端处理。前端不再是后端的模板,而是实现了从“获取数据 --> 处理数据 --> 展示数据”的完整业务逻辑。

  3. 前端MVC阶段

    前端代码有了获取数据、处理数据、展示数据等功能,因此迫切需要辅助工具,方便开发者组织代码。这导致了前端 MVC 框架的诞生。

    2010年,第一个前端 MVC 框架 Backbone.js 诞生。它基本上是把 MVC 模式搬到了前端,但是只有 M (读写数据)和 V(展示数据),没有 C(处理数据)。因为,Backbone 认为前端 Controller 与后端不同,不需要、也不应该处理业务逻辑,只需要处理 UI 逻辑,> > 响应用户的一举一动。所以,数据处理都放在后端,前端只用事件响应处理 UI 逻辑(用户操作)。

    后来,更多的前端 MVC 框架出现。另一些框架提出 MVVM 模式,用 View Model 代替 Controller。MVVM 模式也将前端应用分成三个部分。

    • Model:读写数据
    • View:展示数据
    • View-Model:数据处理

      View Model 是简化的 Controller,所有的数据逻辑都放在这个部分。它的唯一作用就是为 View 提供处理好的数据,不含其他逻辑。也就是说,Model 拿到数据以后,View Model 将数据处理成视图层(View)需要的格式,在视图层展示出来。

      这个模型的特点是 View 绑定 View Model。如果 View Model 的数据变了,View(视图层)也跟着变了;反之亦然,如果用户在视图层修改了数据,也立刻反映在 View Model。整个过程完全不需要手工处理。

  4. SPA 阶段

    前端可以做到读写数据、切换视图、用户交互,这意味着,网页其实是一个应用程序,而不是信息的纯展示。这种单张网页的应用程序称为 SPA(single-page application)。

    所谓 SPA,就是指在一张网页(single page)上,通过良好的体验,模拟出多页面应用程序(application)。用户的浏览器只需要将网页载入一次,然后所有操作都可以在这张页面上完成,带有迅速的响应和虚拟的页面切换。

    随着 SPA 的兴起,2010年后,前端工程师从开发页面(切模板),逐渐变成了开发“前端应用”(跑在浏览器里面的应用程序)。

    目前,最流行的前端框架 Vue、Angular、React 等等,都属于 SPA 开发框架。

原文地址:https://www.cnblogs.com/LiuSandy/p/10165852.html

时间: 2024-11-08 07:03:34

React学习(一)——React出现的历史背景以及前端开发的演变的相关文章

前端小白该如何学习?以及掌握哪些能力才能从事前端开发工程师

对于一些没有编程经验的人来说,一开始就学习 web 前端可能会让你觉得比较困难. 因为你的能力还处在初始阶段,你根本不知道你缺少哪方面的知识. 所以,在正式学习之初,你非常有必要先了解一下前端的能力模型. 前端工程师,都需要掌握哪些能力呢? 简单粗暴点,只需要掌握这张图里的能力就行了. 开个玩笑,新手的话,还是要循序渐进. LV1:学会制作静态页面(Web + Mobile) HTML.HTML5: 理解如何浏览和创建网页.基本的语法规范.常用标签及属性.网页之间的链接与跳转.标签节点层级节点.

【转载】web前端开发学习经验总结

原文链接 web开发大概分为前台和后端,前台又可以分为美工,交互设计,js编程.后端了解不多,前端的话,可以按如下思路系统学习: 基础知识: 1. html + css.这部分建议在 www.w3school.com.cn 上学习,边学边练,每章后还有小测试.之后可以模仿一些网站做些页面.在实践中积累了一些经验后,可以系统的读一两本书,推荐<head first html 与 css 中文版>,不过这本书讲的太细了,我没能拿出耐心细读. 2. javascript. 要学的内容实在很多,如果没

Web 前端开发学习之路(入门篇)

字数1374 阅读4622 评论0 喜欢49 以前学习过一段时间的web前端开发,整理了一些我看过的/我认为比较好的学习资料(网站.书籍).不要问我为啥没有进阶版,我只是一条产品汪而已,求轻喷.== 以下引用知乎 @李路 的话. 以我的经验,大部分技术,熟读下列四类书籍即可. 入门,用浅显的语言和方式讲述正确的道理和方法,如head first系列全面,巨细无遗地探讨每个细节,遇到疑难问题时往往可以在这里得到理论解答,如Definitive Guide/Programming xx系列实践,结合

React 学习一

最近项目准备使用React作为前端,主要第一比较火,第二比较小.抽空先来学习一下. 首先下载资源文件:压缩后不到50KB,是挺小的哦. 其中:react.js 是 React 的核心库,react-dom.js 是提供与 DOM 相关的功能,react-dom-server.js是服务端渲染dom的功能,react-with-addons是一些插件功能. 好,姑且不管server 和addons,用react和react-dom开始一个尝试一下,使用官方实例: <!DOCTYPE html>

React学习系列

React学习系列 系列学习react 翻译地址 https://scotch.io/tutorials/learning-react-getting-started-and-concepts 我是初学者,英语也不是很好,不过一直强迫自己看英文文档. 这是理解翻译,翻译的不好,请见谅!()中的是我翻译过程中理解,参考下,有什么说的不对的欢迎指点下! 第一节:如何开始react和了解react的概念 1.React是什么 react是Facebook 开发出来用于促进UI交互,创建带有状态的,可复

React 学习路线

以下所谈及的,就是为你定制的 React 学习路线. 为了能稳固基础,我们一定要逐步地来进行学习. 倘若你正在建造一间房子,那么为了能快点完成,你是否会跳过建造过程中的部分步骤?如在具体建设前先铺设好部分石头?或直接在一块裸露的土地上先建立起墙面? 又假如你是在堆砌一个结婚蛋糕:能因为上半部分装饰起来更有趣,而直接忽略了下半部分? 不行吗? 当然不行.众所周知,这些做法只会导致失败. 因此,不要想着通过接触 React 来将 ES6 + Webpack + Babel + React + Rou

React学习笔记-1-什么是react,react环境搭建以及第一个react实例

什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似.react是Facebook官方推出的一个javascript的库,现在已经有了非常多的库和框架Facebook为什么还要开发一款新的框架呢?原因就是 Facebook遇到了一些新的问题.Facebook需要解决的问题是构建数据不断变化的大型应用.大型应用是什么意思?数据不断变化带来什么问题呢? 

react学习(二)试写一个例子

一.render方法 参考https://itbilu.com/javascript/react/EJiqU81te.html React的组件最终通过render方法渲染到DOM中,该方法由ReactDOM类库提供.API如下: ReactComponent render( ReactElement element,//需要渲染的元素 DOMElement container,//渲染结果在DOM中插入的位置 [function callback]//渲染完成后的回调函数 ) 二.动手写一个H

react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

react学习小结 本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之前对react使用不多,正好我目前在做的项目也在使用react+redux,借着这个机会系统的学习下react+redux. react是什么 react是一个JavaScript类库,通过react,我们可以构建可组合的UI,也就是说,我们可以通过重用组件来组合出我们的UI.可以说react的核心便是