鍍金池/ 問答/HTML/ react中的_是干嘛用的

react中的_是干嘛用的

例如我要監(jiān)聽滾動條,然后當(dāng)滾動到一定位置時,console.log輸出一些內(nèi)容,看到有種寫法是這樣的:

scrollHandler = this.handleScroll.bind(this);

componentDidMount(){
  window.addEventListener('scroll', this.scrollHandler)
}

_handleScroll(scrollTop){
  if(scrollTop > 100){
    console.log(123);
  }
}

handleScroll(event){
    let scrollTop = event.srcElement.body.scrollTop;  
    let screenHeight = window.screen.height;  
    this._handleScroll(scrollTop);
}

componentWillUnmount() {
        window.removeEventListener('scroll', this.scrollHandler);
    }
    

1.直接把_handleScroll里面的操作放到handleScroll里也可以啊,為什么還要這樣額外弄個方法出來,我只知道_能表示定義一些臨時變量,那放在這里又是什么意思呢?

2.什么時候才需要用到 _ 這個?好處是什么?這樣不會稍微增加了代碼量嗎?

回答
編輯回答
青黛色
  1. 不將_handleScroll直接寫在handleScroll是為了解耦

    @慢慢說別著急 所說, 業(yè)務(wù)和視圖分離,handleScroll負(fù)責(zé)view事件處理,_handleScroll負(fù)責(zé)業(yè)務(wù)邏輯。最簡潔的舉個栗子就是,可能除了事件方式觸發(fā)_handleScroll業(yè)務(wù),還有其他方式,這時候就可以復(fù)用該業(yè)務(wù)了。

  2. _純粹是的編程習(xí)慣,標(biāo)明這是私有變量或者方法。

2017年4月6日 10:28
編輯回答
負(fù)我心

1、放在里面都是可以的。不是唯一。
2、下劃線開頭表示內(nèi)部方法。表示這個方法只供內(nèi)部使用。約定俗成。

2018年9月3日 10:41
編輯回答
她愚我

這是個人編程習(xí)慣問題,不需要過多解讀

2018年4月16日 12:15
編輯回答
雨蝶

handleScroll負(fù)責(zé)解析事件參數(shù),_handleScroll負(fù)責(zé)業(yè)務(wù)邏輯,解耦了。

2017年1月6日 00:49
編輯回答
糖果果

_表示獨有的方法,沒有特殊的語法意義

2017年4月11日 10:01
編輯回答
安若晴

個人編程習(xí)慣哈。

相當(dāng)于在模擬private?

其實就是一種命名約定,在自己的所有程序中,用_開頭的方法來表示私有方法。

2017年12月6日 10:22
編輯回答
膽怯

變量前綴 _ 代表私有方法/屬性 約定俗稱而已,不容易沖突

2017年6月4日 10:34
編輯回答
茍活

可寫可不寫,寫的話容易區(qū)分私有方法及屬性

2018年8月22日 00:51
編輯回答
痞性

表示私有屬性和方法

2017年12月18日 16:53
編輯回答
青檸

解耦,可以提高代碼的可重用性,至于前面的_,一般是看個人習(xí)慣吧。其實說白了,他就是個變量。

2017年5月6日 10:57