React入门笔记

本文介绍了React的基本概念,包括JSX语法、虚拟DOM、函数组件和类组件的工作原理,以及组件的render方法和生命周期。通过实例展示了JSX如何转换为JavaScript,并解释了虚拟DOM在React中的作用。对于初学者,这是一篇很好的React入门教程。
摘要由CSDN通过智能技术生成

最近开始学 React,发现与 Vue 和 Angular 相比,React 非常容易上手且实现原理简单。在此记录一下学习 React 的心路历程:

JSX 语法

这是一种非常棒的语法,可以用 JS 来表达 HTML,虽说是一种语法糖,但是甜得大家不要不要的,其实只要知道 jsx 最终会被 babel 转义成标准 JS 语法即可,例如:

const title = <h1 className="title">Hello, world!</h1>;

打开 Babel REPL 输入上面代码,发现最终被转换成下面这个样子:

const title = React.createElement(
    'h1', // 标签名
    {
    className: 'title' }, // 属性对象
    'Hello, world!' // 子元素
);

到这里,大家应该大概知道其结构了,为了加深理解,我们再来一个复杂点的案例:

const element = (
  <div className="title" width="200" height="100">
    hello<span className="content">world!</span>
  </div>
)

被转换为:

const element = React.createElement(
  "div", // 标签名
  {
    // 属性对象
    className: "title",
    width: "200",
    height: "100",
  }, 
  "hello", // 第一个子元素
  React.createElement( // 第二个子元素
    "span",
    {
    className: "content" },
    "world!"
  )
);

可以看出来,jsx 的表现力是非常强的,语法简洁,是前端界的一大杀器。

虚拟 DOM

我们已经知道,jsx 片段会被转译成用 React.createElement 方法包裹的代码,那 React.createElement 方法究竟是什么呢?其实很简单,就是把参数转换为一个对象而已:

function createElement(type, attrs, ...children) {
   
  return {
    type, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值