美文网首页
初识React

初识React

作者: 毕安 | 来源:发表于2019-01-25 10:15 被阅读0次

初识React

React 来自于Facebook,是的,就是那个你们听说过但是打不开的网站。React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架都不满意,就决定自己写一套,用来架设 instagram的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。所以说,很多东西都是有智慧的懒人创造的。在React的官方博客中明确阐述了React不是一个MVC框架,而是一个用于构建组件化UI的库,是一个前端界面开发工具。所以顶多算是MVC中的V(view)。经过这几年的沉淀,React越来越强大,也受到了越来越多的开发者喜爱。

优点

  • 复杂场景下的高性能
  • 代码量的节省
  • 非常清晰的代码结构
  • 项目将来的可拓展性和可维护性

虚拟DOM

这可以说是一个全新的概念,对于他的好坏,业界也是众说纷纭,但是就我个人来说,我觉得这是一个重大的突破。
所谓的虚拟DOM,就是如下的代码:

ReactDOM.render( 
  <h1>Hello, world!</h1>, 
  document.getElementById('example')
);

ReactDOM.render 是 React 的最基本方法,用于将模板(即函数中的第一个参数)转为 HTML 语言,并插入指定的 DOM 节点。而模板中的div其实和DOM中的div完全是两码事儿了,只不过React提供了和DOM类似的Tag和API,事实上React会通过他自己的逻辑去转化为真正的DOM。所以,把这种叫做虚拟DOM。
使用虚拟DOM可以带来的明显好处就是,当有数据变动导致DOM变动时,React不是全局刷新,而是通过它内部的 dom diff算法计算出不同点,然后以最小粒度进行更新。这也是React号称性能好的原因。

JSX

JSX是React的重要组成部分,他使用类似XML标记的方式来声明界面及关系。HTML 语言直接写在 JavaScript 语言之中,不加任何引号,这就是 JSX 的语法,它允许 HTML 与 JavaScript 的混写。

var names = ['Alice', 'Emily', 'Kate'];
ReactDOM.render( 
  <div> 
  { 
    names.map(function (name) { 
      return <div>Hello, {name}!</div> 
    }) 
  } 
  </div>, 
  document.getElementById('example')
);

上面代码体现了 JSX 的基本语法规则:遇到 HTML 标签(以 < 开头),就用 HTML 规则解析;遇到代码块(以 { 开头),就用 JavaScript 规则解析。这为我们的代码编写提供了极大的便利,而且JSX中除了使用HTML标记之外,并没有复杂的标记,这种自然而直观的方式直接降低了React的学习门槛并且让代码更容易理解。

简化可复用的组件

虚拟DOM(virtual-dom)不仅带来了简单的UI开发逻辑,同时也带来了组件化开发的思想,所谓组件,即某个独立功能或者界面的封装,达到复用或者UI和业务松耦合的目的。React推荐以组件的方式去重新思考UI构成,将UI上每一个功能相对独立的模块定义成组件,然后将小的组件通过组合或者嵌套的方式构成大的组件,最终完成整体UI的构建。
React框架里面使用了简化的组件模型,但更彻底地使用了组件化的概念。React将整个UI上的每一个功能模块定义成组件,然后将小的组件通过组合或者嵌套的方式构成更大的组件。这种做法已经在instagram 网站上普遍实施,大家可以看看instagram的前端源代码。

与传统组件有什么区别:
1、React通过功能来定义最小粒度的组件。
2、React组件的生命周期:Mounting、Updating、Unmounting。

组件化:组件封装,组件复用
组件封装:封装视图、数据、变化逻辑(数据驱动视图变化)
组件复用:props传递,复用

React 与 Vue 的本质区别

1、vue 本质是MVVM框架,由MVC发展而来。React 本质是前端组件化框架,由后端组件化发展而来
2、vue使用模板,React使用JSX
3、React本身就是组件化,没有组件化就不是React。vue也支持组件化,不过是在MVVM上的扩展

总结

React为前端开发带来许多便利,降低前端代码的复杂性,而且能够保证性能保证质量,所以才能这么火,并且有这么多的人来加入React开发的行列。

相关文章

  • ReactJs实现的第一个项目--双11营销活动页面

    初识React:React --- A JavaScript Library for building User ...

  • 02基础语法--001--RN工作原理

    [TOC] 初识 React Native 1.1React Native的优点 React Native 则将你...

  • React组件学习笔记——慕课网

    React组件学习笔记——慕课网 React组件慕课网视频:传送门 第1章 初识React 1.1 React基本...

  • 第一章:初识React

    React 初识 React 是一个用于构建用户界面的 JAVASCRIPT 库。React主要用于构建UI,很多...

  • 初识React

    断断续续看了一段React的介绍,一直没有实践,趁着年前集体“放羊”的时间,初步入门,故做此文以便日后翻阅。 1....

  • 初识React

    定义组件的两种方式 函数定义 类定义 使用React时,值得注意的点: 所有的React组件必须像纯函数那样使用它...

  • 初识React

    React简介 React首次被提出是在2014年的f8大会(f8是由facebook组织的一个年度的技术峰会,目...

  • 初识React

    一、插件或框架的好处 从久远的时代到现在,我们的网页更加动态化与强大,大家在学习的过程中,发现或了解过很多很...

  • 初识react

    【转】react是一个js框架,类似于jquery,但是他做了很大的变化,它将利用jsx语法,将结构(html)和...

  • React初识

    React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不...

网友评论

      本文标题:初识React

      本文链接:https://www.haomeiwen.com/subject/qhqmjqtx.html