React 起手式

178 阅读1分钟

如何引入React

从 CDN 引入 React(不推荐)

bootcdn 引入例子:

<script src="https://cdn.bootcdn.net/ajax/libs/react/18.0.0-alpha-6f3fcbd6f-20210730/umd/react.development.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/react-dom/18.0.0-alpha-6f3fcbd6f-20210730/umd/react-dom.development.min.js"></script>

cjs 和 umd 的区别

  • cjs 全称 CommonJS,是 Node.js 支持的模块规范
  • umd 是统一模块定义,兼容各种模块规范(含浏览器)
  • 理论上优先使用 umd,同时支持 Node.js 和 浏览器
  • 最新的模块规范是使用 import 和 export 关键字

通过 webpack 引入 React

import ... from ...

  • yarn add react react-dom
  • import React from 'react'
  • import ReactDOM from 'react-dom'
  • 注意大小写,尽量保持一致

其他

  • 除 webpack 外,rollup、parcel 也支持上面写法

create-react-app

npx create-react-app my-project
// 或
yarn global add create-react-app

cd my-app
npm start

React 元素

  • createElement 的返回值 element 可以代表一个 div
  • 但 element 并不是真正的 div(DOM 对象)
  • 所以我们一般称 element 为 虚拟 DOM 对象

()=> React 元素

  • 返回 element 的函数,也可以代表一个 div
  • 这个函数可以多次执行,每次得到最新的虚拟 div
  • React 会对比两个虚拟 div,找出不同,局部更新视图
  • DOM Diff 算法,找出不同