简单认识 React
构建用户界面的 JavaScrtip 库
不是框架
React 主观意愿
- React 仅仅负责View层渲染
 - 是一个视图渲染的工具库,不做框架的事情
 
简单使用 React
React.Component()
React.createElement()
ReactDOM.render()
怎么负责视图
- 添加根容器.
 
<div id='app'></div>
- 引入 CDN 脚本
 创建 React 组件
- React -> React API 处理视图的API集合
 一个 React 组件
- 继承 React.Component
 - render 函数返回一个视图 ```javascript class MyButton extends React.Component { constructor(props){ super(props);
 
this.state = { openStatus: false } }
// state = { openStatus: false} // 也可以在这里定义state render() { const oP = React.createElement( ‘p’, {
className: 'text',key: 1,
}, this.state.openStatus ? ‘打开状态’ : ‘关闭状态’; );
const oBtn = React.createElement( ‘button’, {
key:2,onClick: () => this.setState({openStatus: !this.state.openStatus})
}, this.state.openStatus ? ‘关闭’ : ‘打开’; )
const wrapper = React.createElement(
'div',
{
className: 'wrapper'
}, [oP, oBtn] )
return wrapper; } }
ReactDOM.render({ React.createElement(MyButton), docment.getElementById(‘app’); });
- ReactDOM -> 从render -> 虚拟DOM -> 真实DOM```javascriptvar span = React.createElement('span', {className: 'text',key: 1}, 'This is a span');ReactDOM.render({React.createElement('div', {'data-tag': 'div'}, [span]),docment.getElementById('app');});
- ReactDOM.render()- 可以传入元素或组件- React.createElement 创建虚拟节点- 节点名,属性,子节点- React.component- 挂载的DOM节点
工程化
创建React 17.0.2版本的要求
- Node >= 10.16
 - NPM >= 5.6
 
npx create-react-app my-react-app
构建工程化项目
- npx npm5.2+ 包运行工具
 - create-react-app 内部的工程化
- babel / Webpack
 
 
cd my-react-app & yarn start 打开并运行
yarn build 构建
