zhongxia
2016-07-22 18:21:19
1. React使用心得
由于使用react, 都是一直使用 ES6的語(yǔ)法, 因此這里說(shuō)的主要是針對(duì)ES6語(yǔ)法的一些心得.
- ES6中, 給標(biāo)簽 添加事件, 需要給函數(shù) 指定 this 對(duì)象, 否則函數(shù)內(nèi)部的 this 對(duì)象會(huì)指向標(biāo)簽.
eg:
<button onClick={this.handleClick.bind(this)}>Click Me!</button>
- 組件內(nèi)部有監(jiān)聽(tīng)事件, 組件外部變量, 在組件卸載的時(shí)候, 需要移除監(jiān)聽(tīng), 清空比變量
let data = 'xxx';
class Demo extends React.Component {
componentWillUnmount() {
//TODO 卸載事件監(jiān)聽(tīng), 非React 組件內(nèi)的變量 需要 設(shè)置為 null
data = null;
}
}
- componentDidMount方法Ajax獲取數(shù)據(jù), 在 Ajax 成功的回調(diào)函數(shù)里面, 需要判斷 that 是否為空, 不為空在做處理. (獲取判斷組件是否卸載)
可能Ajax還沒(méi)有請(qǐng)求結(jié)束的時(shí)候, 組件已經(jīng)卸載了,導(dǎo)致
componentDidMount() {
let that = this;
//獲取保存路徑
Model.getSavePath(function (result) {
console.log("result.data", result.data) ;
that && that.setState({pathTreeSelectData: result.data})
})}