jsx
class–>className
style–>样式对象
事件 onXxxx
string number
babel
组件
类组件(old)
函数组件
类组件(class component)
1 2 3 4 5 6 7 8 9 10
   | class Counter extends React.Component{ //类组件              state={                 c:1 //计数器的初始值              }              render(){                //let {c:a,d=0}=this.state;   //解构赋值改名,默认值                let {c}=this.state;                return <div>Counter组件 {c}</div>              }           }
  | 
修改state的值
1 2 3 4 5 6 7 8
   | change(){  //这个方法作用就是要改变计数器的值                console.log(this)                this.setState({    //不但可以修改state的值还可以进行渲染                    c:this.state.c+1                })              } tips:    //找回this两种方案,1.箭头函数 2.改变this指向用bind
  | 
setState
是异步的 拿到最新的值,要在回调里拿到
多次连续的setState,对象会进行合并,后面同名的键值会覆盖前面的
多次连续的setState,回调函数的形式,回调函数会依次执行
受控组件与非受控组件
表单元素的值受到数据控制(state或props),受控组件
否则非受控组件
1 2 3 4 5 6
   | <input value={str} onChange={this.input} onKeyUp={this.add} />  input=(e)=>{  // 拿到文本框你输入的值                this.setState({                    str:e.target.value                })     }
  | 
createPortal
1 2 3 4 5 6 7 8 9
   | class MyDialog extends React.Component {                render(){                    return <div>我的对话框</div>                }            }            let DialogObj=ReactDOM.createPortal(<MyDialog />,document.querySelector("body"))            function App(){                return <div>app  {DialogObj} <User /></div>            }
  | 
类组件中常用的属性
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   | state   setState props 是只读的
  ref标识节点  1.<input id="username" value={username} onChange={this.input} ref={(node)=>this.userNameNode=node} /> this.userNameNode 就可以拿到节点了 2 React.createRef() 创建标识  constructor(props){           super(props);                                         this.state={                       ....                     txtRef:React.createRef()                    }                 }   <input id="username" value={username} onChange={this.input} ref={txtRef} />   this.state.txtRef.current  可以拿到节点      constructor   render   componentDidMount
   |