Class組件詳解

Props 外部數(shù)據(jù)

Props的作用

  • 1.接受外部數(shù)據(jù)(只能讀不能寫低缩,外部數(shù)據(jù)由父組件傳遞
  • 2.接受外部函數(shù)(在恰當(dāng)時(shí)機(jī)調(diào)用該函數(shù) 該函數(shù)一般是父組件的函數(shù)

如何讀取Props外部數(shù)據(jù)


this.props是外部數(shù)據(jù)對(duì)象的地址
super的作用就是把props放進(jìn)this里面


state 和 setState



this.setState({newState:fn})
//注意setstate不會(huì)立刻改變this.state 會(huì)在當(dāng)前代碼運(yùn)行完之后再去更新this.state從而觸發(fā)UI更新
this.setState((state,props)=>({fn}))
//這種方式會(huì)立刻執(zhí)行fn操作然后再更新UI







生命周期

函數(shù)列表
constructor() 在這里作用是初始化state
shouldComponentUpdate() 如果return false則會(huì)阻止更新
componentDidMount() 組件掛載后執(zhí)行的函數(shù)
conmponentDidUpdate() 組件更新后執(zhí)行的函數(shù)
componentWillUnmount() 組件將死





constructor

shouldComponentUpadate

example(實(shí)現(xiàn)onclick后對(duì)比前后兩次的n是否變化 如沒(méi)有變化就不要render)(但好像直接用PureComponent就可以自動(dòng)對(duì)比)

import React from 'react';
class App extends React.Component{
    constructor(props){
        super(props)
        this.state = {
            n: 1
        }
    }
    onClick = ()=>{
        this.setState(state =>({n: state.n +1}))//是setState接收一個(gè)回調(diào),這個(gè)回調(diào)可以通過(guò)參數(shù)獲取到state
        this.setState(state =>({n: state.n -1}))
    };
    shouldComponentUpdate(newProps, newState){//這里的聲明必須要寫全 意思是如果onclick后前后兩次的n值不變 就不用render了
        
        if(newState.n === this.state.n){
            return false
        }else{
            return true
        }

    }
    render(){
        console.log('render過(guò)了一次')
        return(
            <div>App
                <div>{this.state.n} <button onClick = {this.onClick}>+1</button>
                
                </div>
            </div>
        )
    }
}

export default App

面試題:shouldComponentUpdate有什么用
它允許我們手段判斷是否需要進(jìn)行組件更新削葱,我們可以根據(jù)應(yīng)用場(chǎng)景靈活的設(shè)置返回值 以避免不必要的更新

render(展示視圖 創(chuàng)建虛擬DO M)

componentDidMount(掛載后執(zhí)行的函數(shù))

componentDidUpdate(prevProps, prevState, snapshot?)(更新數(shù)據(jù)后執(zhí)行的代碼)

componentWillUnmount(誰(shuí)污染誰(shuí)治理)

summary


構(gòu)造=>渲染=>掛載

?著作權(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)離奇詭異,居然都是意外死亡螃宙,警方通過(guò)查閱死者的電腦和手機(jī)蛮瞄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)谆扎,“玉大人挂捅,你說(shuō)我怎么就攤上這事√煤” “怎么了闲先?”我有些...
    開(kāi)封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)无蜂。 經(jīng)常有香客問(wèn)我伺糠,道長(zhǎng),這世上最難降的妖魔是什么斥季? 我笑而不...
    開(kāi)封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任训桶,我火速辦了婚禮累驮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舵揭。我一直安慰自己谤专,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布午绳。 她就那樣靜靜地躺著置侍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拦焚。 梳的紋絲不亂的頭發(fā)上蜡坊,一...
    開(kāi)封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音赎败,去河邊找鬼秕衙。 笑死,一個(gè)胖子當(dāng)著我的面吹牛螟够,可吹牛的內(nèi)容都是我干的灾梦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼妓笙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼若河!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起寞宫,我...
    開(kāi)封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤萧福,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后辈赋,有當(dāng)?shù)厝嗽跇?shù)林里發(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
  • 文/蒙蒙 一兼蜈、第九天 我趴在偏房一處隱蔽的房頂上張望攘残。 院中可真熱鬧,春花似錦饭尝、人聲如沸肯腕。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至姊途,卻和暖如春涉瘾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捷兰。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工立叛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贡茅。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓秘蛇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親顶考。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赁还,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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

  • 目錄一.class組件的創(chuàng)建方式二.props和state三.生命周期Lifecycle 創(chuàng)建 class 組件 ...
    珍惜時(shí)間小李閱讀 265評(píng)論 0 0
  • 兩種方式創(chuàng)建Class組件 ES5方式(過(guò)時(shí)) ES6方式(推薦使用) 第3,4驹沿,5行代碼可寫可不寫艘策,當(dāng)這三行代碼...
    luci_dity閱讀 1,081評(píng)論 0 0
  • 1. 兩種創(chuàng)建class組件的方式 ES5寫法(已經(jīng)過(guò)時(shí)了) ES6 最新的寫法 2. props 外部數(shù)據(jù) pr...
    雨溪灘閱讀 4,967評(píng)論 0 0
  • 兩種方式創(chuàng)建Class組件 ES5方式(過(guò)時(shí)) ES6 方式 以后只用class方式創(chuàng)建類組件webpack+ba...
    是周大俠啊閱讀 2,341評(píng)論 0 1
  • 一朋蔫、class組件 React 有兩種組件:class組件 和 函數(shù)組件。class組件需要繼承 React.Co...
    LearnAnything閱讀 2,117評(píng)論 0 1