用于构建用户界面的javascript库,
https://reactjs.org/(英文)
https://react.docschina.org/(中文)
你只需要描述UI(HTML)看起来是什么样的,就跟写HTML一样
const aa =
Hello React! 动态数据变化:{count}
声明式对应的是命令式,声明式关注的是 what,命令式关注的是how
组件是react中最重要的内容
组件用于表示页面中的部分内容
组合、复用多个组件,就可以实现完整的页面功能
(react中万物皆组件)
React 脚手架的介绍
使用 React 脚手架创建项目
项目目录结构调整
npm i -g @vue/cli React 脚手架(CLI)
npx create-react-app react-basic
create-react-app
是 React 脚手架的名称yarn start
or npm run start
npx
是 npm v5.2 版本新添加的命令,用来简化 npm 中工具包的使用
npm i -g create-react-app
2 在通过脚手架的命令来创建 React 项目src
目录是我们写代码进行项目开发的目录package.json
两个核心库:react
、react-dom
(脚手架已经帮我们安装好,我们直接用即可)- 导入react和react-dom
- 创建react元素(虚拟DOM)
- 渲染react元素到页面中
// 导入react和react-dom
import React from 'react'
import ReactDOM from 'react-dom'
// 创建元素
const title = React.createElement('h1', null, 'hello react')
// 渲染react元素
ReactDOM.render(title, document.getElementById('root'))
完整
import React from "react";
import ReactDom from "react-dom"
// 创建 虚拟DOM
// React.createElement('标签名',{标签属性:class建议写成className},标签内容)
const vNode= React.createElement('div',{id:'aa'},'盒子')
//渲染到页面中
// ReactDom.render(元素,挂载对象)
ReactDom.render(vNode,document.getElementById("root"))
JSX
是JavaScript XML
的简写,表示了在Javascript代码中写XML(HTML)格式的代码
优势:声明式语法更加直观,与HTML结构相同,降低学习成本,提高开发效率。
JSX是react的核心内容
注意:JSX 不是标准的 JS 语法,是 JS 的语法扩展。脚手架中内置的 @babel/plugin-transform-react-jsx 包,用来解析该语法。
- 导入react和reactDOM包
- 使用jsx语法创建react元素
- 把react元素渲染到页面中
// 导入react和react-dom
import React from 'react'
import ReactDOM from 'react-dom'
// 创建元素
const title =
// 渲染元素
ReactDOM.render(title, document.getElementById('root'))
只有在脚手架中才能使用 jsx 语法
JSX必须要有一个根节点, <>>
没有子节点的元素可以使用/>
结束
JSX中语法更接近与 JavaScript
class
=====> className
for
========> htmlFor
JSX可以换行,如果JSX有多行,推荐使用()
包裹JSX,防止自动插入分号的bug
// 保存到额时候用使用prettier进行格式化
"editor.formatOnSave": true,
// 不要有分号
"prettier.semi": false,
// 使用单引号
"prettier.singleQuote": true,
// 默认使用prittier作为格式化工具
"editor.defaultFormatter": "esbenp.prettier-vscode",