1. 程式人生 > >react 基礎

react 基礎

發生 修改 ear 分享 creat 狀態 con tex ima

1.contextApi
// 我們可以在父組件上 定義好一些被後代組件調用的方法,後代組件可以不通過屬性傳遞的方式直接獲取。
let {Provider,Consumer} = React.creareContext();
export default {Provider,Consumer}
父子之間只能是同一個提供者和同一個消費者
2.ref 的新寫法 16.3之後支持
password=React.createRef();

技術分享圖片

3.輸入框的問題

受控組件/非受控組件

import {Component,PureComponent} from React;

PureComponent 會幫我們優化,如果屬性的值的引用地址沒發生變化,視圖不會更新

export default class Todo extends PureComponent{
state={
todos:[]
}
todo =React.createRef();
add =()=>{
//更新策略 不要改引用空間 狀態的修改永遠是產生一個新的引用空間覆蓋掉老的空間,新數組會把老數組蓋掉
this.setState({todos:[...this.state.todos,this.todo.current.value]});
}
render(){
return (
<div>
<input type="text" ref={this.todo}/>
<button onClick={this.add}>添加</button>
{
this.state.todos
}
</div>
)
}
}

react 基礎