前端学习之初识React框架

一、了解React

1、什么是React

1、React是facebook在2013年开园在GitHub上的JavaScript库

2、狭义讲,React是一个用来构建UI的JavaScript库;广义讲,React不仅仅是JavaScript框架本身,更是一套完整的前端开发生态体系;

3、React不是一个MVC框架,仅仅是视图层(V)的库。

2、React的理念

1、React的理念归结为一个公式:UI = render(data);

2、用户看到的UI界面,是一个函数——render的执行结果,只接受数据——data作为参数,这是一个纯函数,即输出只依赖于输入的函数,两次函数的调用如果输入相同,那么输出也绝对相同。如此一来,最终的用户界面,在render函数确定的情况下完全取决于输入数据。

二、React的核心概念

React的核心概念——虚拟DOM(Virtual DOM)

(1)虚拟DOM是React的基石,是React高性能的支撑;

(2)React将DOM抽象为虚拟DOM,虚拟DOM其实就是一个对象来描述DOM;

(3)React通过对比虚拟DOM更新前和更新后的差异,最终只把变化的部分重新渲染,提高渲染的效率;

DOM & JavaScript

  • DOM完全不属于JS(也不再js引擎中存在),JS其实是一个非常独立的引擎,DOM其实是浏览器引出的一组让js操作HTML文档的API而已

  • DOM的操作对于JS实际上是外部函数的调用。

Virtual DOM & DOM

  • Virtual DOM对真实DOM的一种模拟,相对于直接操作真实的DOM结构,我们构建一颗虚拟的树,将各种数据和操作直接应用在这棵虚拟的树上,然后再将对虚拟树上的修改应用到真实的DOM结构上

  • 公式上可以理解为:Virtual DOM => DOM

Diff算法和调和机制

  • Diff算法用于计算Virtual DOM中真正变化的部分,弊病只针对该部分进行原生DOM操作,而非重新渲染整个页面,时间复杂度为O(n);

  • React在每次需要渲染时,会先比较当前DOM内容和待渲染内容的差异,然后再决定如何最优的更新DOM,这个过程称为调和;

Virtual DOM + render

  • Virtual DOM为js和浏览器DOM交互的桥梁,它独立于浏览器环境;
  • Virtual DOM配备上不同的渲染器,就可以将虚拟DOM的内容渲染到不同的平台,用JS开发多平台应用的目的;
React的核心概念——JSX语法
  • JSX是JS语言的一种扩展语法,使我们能够在JS中编写类似HTML的代码(语法糖)

  • JSX的基本语法规则:遇到 HTML标签(以<开头),就用 HTML 规则解析;遇到代码块(以{开头),就用 JavaScript 规则解析;

  • JSX转化成渲染内容之前,默认会进行转义,有效地防止XSS(cross-site-scripting, 跨站脚本);

React的核心概念——React组件
  • 组件是对代码封装的一种形式;
  • React组件是对封装起来的具有独立功能的UI部件;
  • React组件让你可以将UI分割成独立可复用的部分,并独立管理每个部分;
  • React组件特征:可组合,可重用,可维护,可测试

组件的声明方式

  1. 函数组件
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>
}
  1. class组件
class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}
React的核心概念——props & state
  • React组件的数据分为两种——props和state
  • React的渲染结果是由组件属性和状态共同决定的,状态和属性的区别是:状态维护在组件内部(私有),属性是由外部控制(公有)。它们任何一个的改变都会引发组件的重新渲染
  • 组件修改组件自身状态state,需要调用setState方法
  • React组件必须保护它们的props不被更改
React的核心概念——单项数据流
  • 在React中,数据是自顶向下单项流动的,即从父组件到子组件;
  • 这条原则让组件之间的关系变的透明且可预测;

三、学习资源指引

React官方文档

http://reactjs.org/ (英文版)
https://react.docschina.org/ (中文版)

相关书籍:《深入React技术栈》,《React进阶之路》

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值