React函數(shù)式組件類式組件

項目創(chuàng)建

npx craete-react-app my-app
cd my-app
npm start

面向組件編程

組件:用來實現(xiàn)局部功能效果的代碼和資源的集合

1.函數(shù)式組件:

function MyComponent(){
    return <h2>我是用函數(shù)定義的組件(適用于簡單組件的定義)</h2>
}
ReactDOM.render( <MyComponent/>,document.getElementById('test') )

類的基本知識:

//創(chuàng)建一個Person類
Class Person {
      //構(gòu)造器方法
      constructor(name,age){
            //構(gòu)造器中的this是誰?—類的實例對象
            this.name = name
            this.age = age
      }
      //一般方法
      speak(){
            //speak方法放在哪里?—Person的原型對象上扶踊,供實例使用
            //通過Person實例調(diào)用speak時绰播,speak中的this就是Person實例
            console.log(`我叫${this.name}抵屿,年齡${this.age}`);
      }
}
//創(chuàng)建一個Person的實例對象
const p1 = new Person('tom',18)
const p2 = new Person('jerry',19)
p1.speak()
p2.speak()

//創(chuàng)建一個Student類,繼承Person類
class Student extends Person {
      //constructor構(gòu)造器不是一個必須要寫的東西
      constructor(name,age,grade){
            super(name,age)  //must need
            this.grade = grade
      }
      //重寫從父類繼承過來的方法
      speak(){
            console.log(`我叫${this.name},年齡${this.age}秘豹,我讀的是${this.grade}年級`);
      }
      study(){
            //study方法放在哪里?—Student類的原型對象上芝此,供實例使用
            //通過Student實例調(diào)用study時憋肖,study中的this就是Student實例
            console.log("我很努力的學(xué)習(xí)");
      }
}
const s1 = new Student("小張",15)
console.log(s1);  
s1.speak();
s1.study();
/*
1.類中的構(gòu)造器不是必須寫的,要對實例進(jìn)行一些初始化的操作婚苹,如添加指定屬性時才寫;
2.如果A類繼承了B類岸更,且A類中寫了構(gòu)造器,那么A類構(gòu)造器中super是必須要調(diào)用的;
3.類中定義的方法膊升,都是放在了類的原型對象上怎炊,供實例去使用
*/

2.類式組件:

//1.創(chuàng)建類式組件
class Mycomponent extends React.Component{
      render(){
            //render是放在哪里的?—Mycomponent 類的原型對象上廓译,供實例使用评肆。
            //render中的this是誰?—Mycomponent實例對象 <=> Mycomponent組件實例對象非区。
            return  <h2>我是用類定義的組件,適用于復(fù)雜組件</h2>
      }
}
//2.渲染組件到頁面
ReactDOM.render(<MyComponent />,document.getElementById('test') )
/*
執(zhí)行了ReactDOM.render(<MyComponent/>...之后發(fā)生了什么瓜挽?
1.React解析組件標(biāo)簽,找到了MyComponent組件征绸。
2.發(fā)現(xiàn)組件時使用類定義的久橙,React隨后new出來該類的實例,并通過該實例調(diào)用到了原型上的render()方法管怠。  
3.將render返回的虛擬DOM轉(zhuǎn)為真實DOM并呈現(xiàn)在頁面當(dāng)中淆衷。
*/
生命周期

1.初始化階段:由ReactDOM.render()觸發(fā)—初次渲染
(1). constructor
(2). getDerivedStateFromProps //從Props得到一個派生的狀態(tài),即state的值任何時候都取決與props渤弛,派生狀態(tài)會導(dǎo)致代碼冗余組件難以維護(hù)祝拯,罕見
(3). render()
(4). componentDidMount() //組件掛載完了

2.更新階段:由組件內(nèi)部this.setState()或父組件重新>render觸發(fā)
(1). getDerivedStateFromProps
(2). shouldComponentUpdate()
(3). render()
(4. getSnapshotBeforeUpdate //得到快照
(5). componentDidUpdate()

3.卸載組件:由ReactDOM.unmountComponentAtNode()觸發(fā)
(1). componentWillUnmount()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市她肯,隨后出現(xiàn)的幾起案子佳头,更是在濱河造成了極大的恐慌,老刑警劉巖晴氨,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件畜晰,死亡現(xiàn)場離奇詭異,居然都是意外死亡瑞筐,警方通過查閱死者的電腦和手機(jī)凄鼻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門腊瑟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人块蚌,你說我怎么就攤上這事闰非。” “怎么了峭范?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵财松,是天一觀的道長。 經(jīng)常有香客問我纱控,道長辆毡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任甜害,我火速辦了婚禮舶掖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尔店。我一直安慰自己眨攘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布嚣州。 她就那樣靜靜地躺著鲫售,像睡著了一般。 火紅的嫁衣襯著肌膚如雪该肴。 梳的紋絲不亂的頭發(fā)上情竹,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天,我揣著相機(jī)與錄音匀哄,去河邊找鬼鲤妥。 笑死,一個胖子當(dāng)著我的面吹牛拱雏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播底扳,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼铸抑,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了衷模?” 一聲冷哼從身側(cè)響起鹊汛,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎阱冶,沒想到半個月后刁憋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡木蹬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年至耻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡尘颓,死狀恐怖走触,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情疤苹,我是刑警寧澤互广,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站卧土,受9級特大地震影響惫皱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尤莺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一旅敷、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缝裁,春花似錦扫皱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粹污,卻和暖如春段多,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背壮吩。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工进苍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鸭叙。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓觉啊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親沈贝。 傳聞我的和親對象是個殘疾皇子杠人,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評論 2 361

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