react中優(yōu)雅的使用typescript

在 react 中使用 ts 的幾點(diǎn)原則和變化

  1. 所有用到j(luò)sx語法的文件都需要以tsx后綴命名
  2. 使用組件聲明時(shí)的Component<P, S>泛型參數(shù)聲明鹿寨,來代替PropTypes赡艰!
  3. 全局變量或者自定義的window對(duì)象屬性笙瑟,統(tǒng)一在項(xiàng)目根下的global.d.ts中進(jìn)行聲明定義
  4. 對(duì)于項(xiàng)目中常用到的接口數(shù)據(jù)對(duì)象亮钦,在types/目錄下定義好其結(jié)構(gòu)化類型聲明

React組件申明分為:類組件和函數(shù)式組件

類組件:

class App extends Component<IProps, IState> {
  state: IState = {
    //...
  };
  // 如果state很復(fù)雜不想一個(gè)個(gè)都初始化盏求,可以結(jié)合類型斷言初始化state為空對(duì)象或者只包含少數(shù)必須的值的對(duì)象,如下:
  // readonly state = {} as IState;
}
  1. React.Component<IProps, IState>只是標(biāo)注了基類的state屬性類型
  2. 使用 class properties 語法對(duì)state做初始化時(shí),會(huì)覆蓋掉Component<P, S>中對(duì)state的readonly標(biāo)識(shí)
  3. 而當(dāng)你在子類聲明state時(shí)挫剑,你可以為state標(biāo)注一個(gè)【IState的子類型】作為override去扣。這樣,this.state會(huì)以子類中的state屬性聲明作為類型信息的來源。
    //4. 建議使用函數(shù)組件愉棱,v16.7起唆铐,由于hooks的加入

函數(shù)式組件:

const List: React.FC<IProps> = props => null

建議使用函數(shù)組件:

  1. v16.7起,由于hooks的加入奔滑,函數(shù)式組件也可以使用state
  2. hooks是比HOC和render props更優(yōu)雅的邏輯復(fù)用方式
  3. hooks(主要是useEffect)取代了生命周期的概念(減少API)艾岂,讓開發(fā)者的代碼更加“聲明化”
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朋其,隨后出現(xiàn)的幾起案子王浴,更是在濱河造成了極大的恐慌,老刑警劉巖梅猿,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件氓辣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡袱蚓,警方通過查閱死者的電腦和手機(jī)钞啸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來喇潘,“玉大人体斩,你說我怎么就攤上這事∮钡停” “怎么了絮吵?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)忱屑。 經(jīng)常有香客問我蹬敲,道長(zhǎng),這世上最難降的妖魔是什么想幻? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任粱栖,我火速辦了婚禮练慕,結(jié)果婚禮上赖草,老公的妹妹穿的比我還像新娘漏隐。我一直安慰自己,他們只是感情好食店,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赏寇,像睡著了一般吉嫩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嗅定,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天自娩,我揣著相機(jī)與錄音,去河邊找鬼渠退。 笑死忙迁,一個(gè)胖子當(dāng)著我的面吹牛脐彩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姊扔,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼惠奸,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了恰梢?” 一聲冷哼從身側(cè)響起佛南,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嵌言,沒想到半個(gè)月后嗅回,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摧茴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年妈拌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蓬蝶。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡尘分,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出丸氛,到底是詐尸還是另有隱情培愁,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布缓窜,位于F島的核電站定续,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏禾锤。R本人自食惡果不足惜私股,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恩掷。 院中可真熱鬧倡鲸,春花似錦、人聲如沸黄娘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽逼争。三九已至优床,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間誓焦,已是汗流浹背胆敞。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人移层。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓仍翰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親幽钢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子歉备,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 作為一個(gè)合格的開發(fā)者,不要只滿足于編寫了可以運(yùn)行的代碼匪燕。而要了解代碼背后的工作原理蕾羊;不要只滿足于自己的程序...
    六個(gè)周閱讀 8,454評(píng)論 1 33
  • 起步 安裝官方腳手架: npm install -g create-react-app 創(chuàng)建項(xiàng)目: create-...
    Twoold閱讀 1,246評(píng)論 0 0
  • 今天的React題沒有太多的故事…… 半個(gè)月前出了248個(gè)Vue的知識(shí)點(diǎn),受到很多朋友的關(guān)注帽驯,都強(qiáng)烈要求再出多些R...
    浪子神劍閱讀 10,090評(píng)論 6 106
  • HTML模版 之后出現(xiàn)的React代碼嵌套入模版中龟再。 1. Hello world 這段代碼將一個(gè)一級(jí)標(biāo)題插入到指...
    ryanho84閱讀 6,245評(píng)論 0 9
  • 初中前我都是在外婆家生活的,童年的回憶也都是在外婆家尼变,記得那時(shí)候每天除了學(xué)習(xí)就是玩利凑,當(dāng)然每次都是先把作業(yè)寫完再去找...
    singletravel閱讀 542評(píng)論 0 0