1.bind,apply,call----為什么不能用apply、call綁定?
原因是:apply,call指向完之后立即執(zhí)行當(dāng)前函數(shù),bind是返回一個(gè)新的函數(shù)
2.區(qū)分普通函數(shù)與事件處理函數(shù)
1) 普通函數(shù)是直接調(diào)用的。不存在 this 指向問(wèn)題,誰(shuí)調(diào)用的,this 指向就是誰(shuí),并且沒(méi)有事件對(duì)象
2)事件處理函數(shù)其實(shí)也是一個(gè)函數(shù),只是他綁定在某個(gè)事件上,this默認(rèn)指向undefined(在嚴(yán)格模式下)
3.解決this指向的四種方法
1)直接在事件綁定的地方加上 .bind(this)
注意父組件render,子組件一定會(huì)render,所以該又會(huì)返回一個(gè)全新的函數(shù)

2)使用一個(gè)箭頭函數(shù)來(lái)作為事件處理函數(shù),然后在這個(gè)箭頭函數(shù)中再以普通方式去調(diào)用最終的函數(shù)
注意父組件render,子組件一定會(huì)render,所以該又會(huì)返回一個(gè)全新的箭頭函數(shù)

3)在構(gòu)造函數(shù)(constructor)中提前做?bind ---只初始化一次

4)使用?public?class?filed?新語(yǔ)法。并將函數(shù)寫(xiě)成箭頭函數(shù)的形式。

性能優(yōu)化:
1.?父組件render,子組件一定會(huì)render
為了節(jié)省性能,父組件render的時(shí)候,如果子組件沒(méi)有必要更新。那么不應(yīng)該讓子組件render
如何辦呢?
1.?自己使用?shouldComponentUpdate()?生命周期的鉤子函數(shù)
2.?不要寫(xiě)?shouldComponentUpdate?.而是讓組件繼承?一個(gè)?PureComponent?基礎(chǔ)組件
了解到這種性能優(yōu)化之后。
在子組件上傳遞函數(shù)時(shí)并且不攜帶參數(shù)時(shí),推薦使用哪幾種解決?this?指向問(wèn)題的方案(即上面的方法3,4)
1.?提供?構(gòu)造函數(shù)中?綁定
2.?public?class?filed?新語(yǔ)法的方式