备忘:
-
脚手架 npm i create-react-app
-
创建 npx create-react-app [项目名]
-
pwa serviceWorker 离线应用
-
jsx 同时解析 html 和 js : 遇到 < 按照 html,遇到 { 按照 js
-
类名为 className,不能直接写class
-
fragment 在最外面套一层,不会影响布局(直接套div报错)
-
jsx return 为 html时,外面套上括号可支持换行
-
修改列表的值的时候,先用临时变量获取,然后修改,然后重新赋值。不允许直接操作原数据!虽然不报错,但是后期性能优化会遇到巨大障碍。
-
jsx的几个坑
- 注释:
{/*第一次写注释*/}
也可以写 // 不过需要换行,建议写上面那个 - 在jsx中css样式使用class要用className(防止与class混淆)
- input中输入的value默认不会被解析为html,可使用
dangerouslySetlnnerHTML = { {__html: item} }
来解析为html - label辅助标签,为了不与js中的for重复,需要使用htmlFor来代替for完成对标input的id功能。
- 注释:
-
vscode 中的快速生成插件 simple react
- imr
import React from 'react'
; - imrc
import React,{ Component } from 'react'
; - impt
import Protypes from 'prop-types'
; - impc
import React, { PureComponent } from 'react'
- cc
- imr
class | extends Component {
state = { | },
render() {
return ( | );
}
}
export default |;
- ccc
class | extends Component {
constructor(props) {
super(props);
this.state = { | };
}
render() {
return ( | );
}
}
export default |;
- sfc
const | = props => {
return ( | );
};
export default |;
- cdm
componentDidMount() {
|
}
- cwm
//WARING! To be deprecated in React v17. Use new lifecycle static getDerivedStateFeomProps instead
componentWillReceiveProps(nextProps) {
|
}
- gds
static getDerivedStateFromProps(nextProps, preStat) {
|
}
- scu
shouldComponentUpdate(nextProps, nextState) {
|
}
- cwu
//WARING! To be deprecated in React v17. Use componentDidUpdate instead
componentWillUpdate(nextProps, nextState) {
|
}
- cdu
componentDidUpdate(prevProps, prevSatte) {
|
}
- cwun
componentWillUnmount() {
|
}
- cdc
componentDidCatch(error, info) {
|
}
- gsdu
getSnapshotBeforeUpdate(prevProps, prevState) {
|
}
- ss
this.setState({ | : | });
- ssf
this.setState(prevState => {
return { | : prevState.| }
});
- ren
render() {
return (
|
);
}
- rprop
class | extends Component {
state = { | },
render() {
return this.props.render({
|: this.state.|
})
}
}
- hoc
function | (|) {
return class extends Component {
constructor(props) {
super(props);
}
render() {
return < | { ...this.props} />
}
};
}
- proto-type 可检验传值类型
- 必须传递 可用
prototype.string.isrequired
- 组件第一次存在于DOM中,函数是不会被执行的,如果已经存在于DOM中,函数才会被执行。