精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面試官:說說對React中類組件和函數組件的理解?有什么區別?

開發 前端
類組件,顧名思義,也就是通過使用ES6類的編寫形式去編寫組件,該類必須繼承React.Component。

[[410052]]

本文轉載自微信公眾號「JS每日一題」,作者灰灰。轉載本文請聯系JS每日一題公眾號。

一、類組件

類組件,顧名思義,也就是通過使用ES6類的編寫形式去編寫組件,該類必須繼承React.Component

如果想要訪問父組件傳遞過來的參數,可通過this.props的方式去訪問

在組件中必須實現render方法,在return中返回React對象,如下:

  1. class Welcome extends React.Component { 
  2.   constructor(props) { 
  3.     super(props) 
  4.   } 
  5.   render() { 
  6.     return <h1>Hello, {this.props.name}</h1> 
  7.   } 

二、函數組件

函數組件,顧名思義,就是通過函數編寫的形式去實現一個React組件,是React中定義組件最簡單的方式

  1. function Welcome(props) { 
  2.   return <h1>Hello, {props.name}</h1>; 

函數第一個參數為props用于接收父組件傳遞過來的參數

三、區別

針對兩種React組件,其區別主要分成以下幾大方向:

  • 編寫形式
  • 狀態管理
  • 生命周期
  • 調用方式
  • 獲取渲染的值

編寫形式

兩者最明顯的區別在于編寫形式的不同,同一種功能的實現可以分別對應類組件和函數組件的編寫形式

函數組件:

  1. function Welcome(props) { 
  2.   return <h1>Hello, {props.name}</h1>; 

類組件:

  1. cass Welcome extends React.Component { 
  2.   constructor(props) { 
  3.     super(props) 
  4.   } 
  5.   render() { 
  6.     return <h1>Hello, {this.props.name}</h1> 
  7.   } 

狀態管理

在hooks出來之前,函數組件就是無狀態組件,不能保管組件的狀態,不像類組件中調用setState

如果想要管理state狀態,可以使用useState,如下:

  1. const FunctionalComponent = () => { 
  2.     const [count, setCount] = React.useState(0); 
  3.  
  4.     return ( 
  5.         <div> 
  6.             <p>count: {count}</p> 
  7.             <button onClick={() => setCount(count + 1)}>Click</button> 
  8.         </div> 
  9.     ); 
  10. }; 

在使用hooks情況下,一般如果函數組件調用state,則需要創建一個類組件或者state提升到你的父組件中,然后通過props對象傳遞到子組件

生命周期

在函數組件中,并不存在生命周期,這是因為這些生命周期鉤子都來自于繼承的React.Component

所以,如果用到生命周期,就只能使用類組件

但是函數組件使用useEffect也能夠完成替代生命周期的作用,這里給出一個簡單的例子:

  1. const FunctionalComponent = () => { 
  2.     useEffect(() => { 
  3.         console.log("Hello"); 
  4.     }, []); 
  5.     return <h1>Hello, World</h1>; 
  6. }; 

上述簡單的例子對應類組件中的componentDidMount生命周期

如果在useEffect回調函數中return一個函數,則return函數會在組件卸載的時候執行,正如componentWillUnmount

  1. const FunctionalComponent = () => { 
  2.  React.useEffect(() => { 
  3.    return () => { 
  4.      console.log("Bye"); 
  5.    }; 
  6.  }, []); 
  7.  return <h1>Bye, World</h1>; 
  8. }; 

調用方式

如果是一個函數組件,調用則是執行函數即可:

  1. // 你的代碼  
  2. function SayHi() {  
  3.     return <p>Hello, React</p>  
  4. }  
  5. // React內部  
  6. const result = SayHi(props) // » <p>Hello, React</p> 

如果是一個類組件,則需要將組件進行實例化,然后調用實例對象的render方法:

  1. // 你的代碼  
  2. class SayHi extends React.Component {  
  3.     render() {  
  4.         return <p>Hello, React</p>  
  5.     }  
  6. }  
  7. // React內部  
  8. const instance = new SayHi(props) // » SayHi {}  
  9. const result = instance.render() // » <p>Hello, React</p> 

獲取渲染的值

首先給出一個示例

函數組件對應如下:

  1. function ProfilePage(props) { 
  2.   const showMessage = () => { 
  3.     alert('Followed ' + props.user); 
  4.   } 
  5.  
  6.   const handleClick = () => { 
  7.     setTimeout(showMessage, 3000); 
  8.   } 
  9.  
  10.   return ( 
  11.     <button onClick={handleClick}>Follow</button> 
  12.   ) 

類組件對應如下:

  1. class ProfilePage extends React.Component { 
  2.   showMessage() { 
  3.     alert('Followed ' + this.props.user); 
  4.   } 
  5.  
  6.   handleClick() { 
  7.     setTimeout(this.showMessage.bind(this), 3000); 
  8.   } 
  9.  
  10.   render() { 
  11.     return <button onClick={this.handleClick.bind(this)}>Follow</button> 
  12.   } 

兩者看起來實現功能是一致的,但是在類組件中,輸出this.props.user,Props在 React中是不可變的所以它永遠不會改變,但是 this 總是可變的,以便您可以在 render 和生命周期函數中讀取新版本

因此,如果我們的組件在請求運行時更新。this.props 將會改變。showMessage方法從“最新”的 props 中讀取 user

而函數組件,本身就不存在this,props并不發生改變,因此同樣是點擊,alert的內容仍舊是之前的內容

小結

兩種組件都有各自的優缺點

函數組件語法更短、更簡單,這使得它更容易開發、理解和測試

 

而類組件也會因大量使用 this而讓人感到困惑

 

責任編輯:武曉燕 來源: JS每日一題
相關推薦

2021-06-30 07:19:36

React事件機制

2021-07-12 08:35:24

組件應用場景

2021-07-07 08:36:45

React應用場景

2021-07-13 07:52:03

ReactHooks組件

2021-07-29 07:55:20

React Fiber架構引擎

2021-09-13 09:23:52

TypeScript命名空間

2021-07-09 08:33:35

React組件受控

2021-08-13 07:56:13

Git pullGit fetch倉庫里

2021-06-03 08:14:01

NodeProcessJavaScript

2021-05-31 10:35:34

TCPWebSocket協議

2023-12-13 13:31:00

useEffect對象瀏覽器

2021-06-04 07:55:30

Node Fs 操作

2024-05-30 08:04:20

Netty核心組件架構

2021-12-23 07:11:31

開發

2021-07-02 07:06:20

React組件方式

2021-06-07 09:41:48

NodeBuffer 網絡協議

2021-06-08 08:33:23

NodeStream數據

2023-02-17 08:10:24

2021-06-10 07:51:07

Node.js循環機制

2021-10-29 09:40:21

設計模式軟件
點贊
收藏

51CTO技術棧公眾號

欧美亚洲免费高清在线观看| xxxx欧美18另类的高清| av女优在线播放| 亚洲黄色小说网址| 影音先锋亚洲电影| 日韩久久免费电影| 天天碰免费视频| 1769在线观看| 国产成人一级电影| 久久视频在线视频| xxxx在线免费观看| 成人女同在线观看| 久久午夜国产精品| 国产精品亚洲一区二区三区| 中文字幕电影av| 日韩区欧美区| 欧美日韩国产影院| 亚洲电影一二三区| 精品国产免费无码久久久| 国产亚洲激情| 久久久精品亚洲| 亚洲av成人精品一区二区三区| 中文字幕在线直播| 中文字幕在线播放不卡一区| 成人资源av| 欧美特级黄色片| 欧美在线视屏| 亚洲男人第一av网站| 97超碰人人看| 日本蜜桃在线观看视频| 国产精品久久久久aaaa| 国产伦精品一区二区三区四区免费| 久久久久久久久久久影院| 国产精品久久久久久久| 日韩激情在线视频| 亚洲欧美日韩一二三区| 欧美成人影院| 国产精品久久久久久亚洲毛片| 国产精品亚洲综合| 亚洲永久精品视频| 性欧美暴力猛交另类hd| 久热精品在线视频| 丰腴饱满的极品熟妇| 日本少妇精品亚洲第一区| 色女孩综合影院| 麻豆一区二区三区在线观看| 国产午夜视频在线观看| 成人国产精品免费观看视频| 国产主播在线一区| www.久久精品视频| 亚洲激情成人| 久久艹在线视频| 东方伊人免费在线观看| 日韩成人18| 欧美男人的天堂一二区| 美女黄色片视频| 性孕妇free特大另类| 一区二区成人在线| 亚洲一区在线直播| 国产精品一区二区婷婷| 26uuu精品一区二区在线观看| 5566av亚洲| 国产精品女同一区二区| 精品系列免费在线观看| 国产精品大片wwwwww| 欧美a∨亚洲欧美亚洲| 亚洲经典在线看| 欧美激情一区二区三区成人| 亚洲成人生活片| 国产高清欧美| 日韩小视频网址| 第一次破处视频| 亚洲va久久久噜噜噜久久| 亚洲国产精品久久91精品| 国产chinesehd精品露脸| 精品国产三级| 日韩欧美国产一区二区在线播放 | 亚洲精品进入| 日韩欧美一级精品久久| 午夜精品免费看| 亚洲午夜国产成人| 欧美精品在线视频| 中文字幕在线观看日| va天堂va亚洲va影视| 在线观看91av| 女人扒开腿免费视频app| 亚洲天堂av资源在线观看| 欧美videossexotv100| 日本人妻一区二区三区| 久久中文资源| 亚洲男人天堂视频| 青青青视频在线播放| 日韩综合在线| 在线观看欧美视频| 91av手机在线| 欧美午夜在线视频| 91国偷自产一区二区三区的观看方式| 91香蕉在线视频| 久久亚洲综合| 国产日韩在线观看av| 91激情在线观看| 久久精品99国产精品日本| 91在线|亚洲| 人妻少妇精品无码专区久久| 久久久无码精品亚洲日韩按摩| 日本一区网站| 成人在线视频亚洲| 午夜一区二区三区视频| www.色就是色| 欧美国产亚洲精品| 日韩电影在线观看中文字幕| 国产一二三四视频| 欧美日韩国产免费观看 | 豆国产97在线| 黄色在线播放| 亚洲精品国产第一综合99久久| aa在线观看视频| 蜜桃成人精品| 精品欧美一区二区久久| 在线观看福利片| 久久久9色精品国产一区二区三区| 欧美精品18videos性欧| 波多野结衣视频观看| 国产精品自拍一区| 日本一区二区三区在线视频| 3d玉蒲团在线观看| 色呦呦日韩精品| 色诱av手机版| 天天久久综合| 国产成人午夜视频网址| 一二区在线观看| 97精品国产露脸对白| 中文字幕一区二区三区精彩视频 | www.亚洲成人网| 午夜av成人| 亚洲成人a**站| 日韩三级在线观看视频| 日韩午夜免费视频| 91免费国产网站| www在线免费观看| 婷婷久久综合九色国产成人| 182午夜视频| 亚洲精品亚洲人成在线观看| 久久国产精品久久久久| wwwwww在线观看| 97超碰欧美中文字幕| 国产a级黄色大片| 成人在线观看免费播放| 亚洲精品日韩在线| 久草免费在线观看视频| 国产在线视频精品一区| 午夜精品区一区二区三| 亚洲国产福利| 日韩av在线免费看| 国产午夜久久久| 国产精品资源在线看| 亚洲欧美日韩另类精品一区二区三区 | 欧美激情无毛| 国产欧美一区二区三区久久| 精品影院一区| 日韩欧美aaa| 97香蕉碰碰人妻国产欧美| 亚洲第一黄网| 国产精品swag| 丁香花在线高清完整版视频| 日韩免费视频一区二区| 91传媒免费观看| 久久精品国产99国产| 小说区图片区图片区另类灬| 欧美黑人巨大xxxxx| 精品亚洲国产视频| 日韩在线视频免费播放| 26uuu另类欧美亚洲曰本| 精品中文字幕av| 中文字幕伦av一区二区邻居| 欧美一级在线亚洲天堂| 色就是色亚洲色图| 色婷婷亚洲一区二区三区| 中文字幕免费高清| 免费在线欧美视频| 日韩成人av电影在线| 久久91导航| 在线观看成人黄色| 亚洲中文字幕在线观看| 亚洲人成人一区二区在线观看| 交换做爰国语对白| 欧美激情91| 国产成人精品福利一区二区三区 | 三级网站在线播放| 久久精品综合网| 9久久婷婷国产综合精品性色 | 午夜精品亚洲一区二区三区嫩草| 国产一区二区三区四区五区3d| 日韩专区在线观看| 六月婷婷综合网| 都市激情亚洲色图| 美女av免费看| 国产精品99久久久久久有的能看| 996这里只有精品| 欧美理论电影在线精品| 国产精品91一区| 国产传媒在线播放| 亚洲精品久久久久中文字幕二区| 日韩女优在线观看| 国产视频亚洲色图| 日本特黄在线观看| 国产欧美丝祙| 亚洲精品乱码视频| 最新精品在线| 国产91色在线播放| h片在线免费| 国产婷婷成人久久av免费高清| 蜜臀99久久精品久久久久小说 | 久草免费新视频| 久久久午夜精品| 免费人成视频在线播放| av成人黄色| 中文字幕一区二区三区有限公司| 大奶在线精品| 国产欧美亚洲精品| 漫画在线观看av| 久久久91精品国产| 青青草观看免费视频在线| 欧美三级中文字幕| 欧美bbbbbbbbbbbb精品| 亚洲免费av高清| 国产精品久久久免费观看| 极品美女销魂一区二区三区免费| 少妇人妻在线视频| 欧美成人精品| 午夜精品视频在线观看一区二区| 91精品短视频| 国产精品旅馆在线| 色在线免费观看| 欧美黄色免费网站| 日本视频在线观看| 亚洲欧美成人网| 亚洲精品久久久久avwww潮水| 欧美三区在线观看| 黄色一级视频免费看| 午夜视频一区二区三区| www日韩在线| 国产精品不卡视频| 一级肉体全黄裸片| 久久综合九色综合97婷婷女人 | 日本丰满少妇一区二区三区| 国产大片aaa| 伊人一区二区三区| 三级全黄做爰视频| 中文字幕中文字幕在线一区 | 成人黄色大片在线免费观看| 自拍偷拍欧美视频| 国外成人在线直播| 在线观看a级片| 久久综合色88| 欧美尤物美女在线| 一个人看的www久久| 免费人成黄页在线观看忧物| 亚洲精品国产精品久久清纯直播| 国产 欧美 精品| 欧美成人三级电影在线| 国产丰满美女做爰| 欧美一二三四区在线| 国产视频在线观看免费 | 人人妻人人澡人人爽欧美一区双| 国产精品久久久久久| 99精品视频网站| 999久久久国产精品| 亚洲日本精品| 希岛爱理一区二区三区| 在线免费观看一区二区三区| 欧美mv日韩| 亚洲啪啪av| 婷婷亚洲综合| 九一免费在线观看| 亚洲精品极品| 国产精品自拍片| 丝袜亚洲另类丝袜在线| av五月天在线| 久久爱www久久做| 992kp免费看片| 不卡视频免费播放| 久久视频精品在线观看| 亚洲日本丝袜连裤袜办公室| 亚洲精品视频在线观看免费视频| 91国在线观看| 精品久久久久久亚洲综合网站| 日韩精品久久久久久久玫瑰园| 成人精品一区二区三区校园激情 | 日本黄色免费片| 亚洲成人777| 这里只有精品免费视频| 欧美一区二区女人| 男人天堂网在线观看| 色爱av美腿丝袜综合粉嫩av | 午夜免费一区| 一女被多男玩喷潮视频| 久久精品国产精品青草| 中出视频在线观看| 专区另类欧美日韩| 日韩免费av网站| 精品久久一区二区| av在线播放av| 欧美一级淫片videoshd| 视频精品一区二区三区| 水蜜桃一区二区| 伊人精品在线| 色偷偷中文字幕| 欧美国产一区二区在线观看| 国产一级中文字幕| 91精品国产乱码久久蜜臀| 六十路在线观看| 韩国美女主播一区| 久久国产精品美女| 亚洲欧美日韩国产yyy| 久久不射网站| 在线视频 日韩| 一区二区在线观看不卡| 在线观看免费视频一区| 亚洲欧美日韩一区在线| 国产乱码精品一区二三赶尸艳谈| 亚洲在线免费观看| 日韩中文在线电影| 91国产精品视频在线观看| 91色.com| 黑人一级大毛片| 欧美精品一区视频| 手机在线免费看av| 96pao国产成视频永久免费| 超碰成人久久| www.超碰com| 久久一夜天堂av一区二区三区| www欧美com| 欧美人妖巨大在线| 欧美三级电影一区二区三区| 国产精品xxx视频| 九色精品91| 黄色片久久久久| 久久夜色精品国产噜噜av| 中文在线观看免费网站| 精品国产免费视频| 国产蜜臀在线| 国产精品一区二区三区不卡| 亚洲一级一区| 亚洲 欧美 日韩在线| 亚洲国产精品欧美一二99 | 亚洲人成自拍网站| 日本美女一区| 日韩精品欧美在线| 日本不卡在线视频| 欧美成人短视频| 91精品在线免费观看| 免费在线看a| 亚洲自拍偷拍区| 欧美精品97| 亚洲一级av无码毛片精品| 欧美午夜宅男影院在线观看| 你懂的视频在线免费| 国产精品露脸自拍| 婷婷久久综合| 69亚洲乱人伦| 欧美特级www| 最新97超碰在线| 91在线精品视频| 最新亚洲激情| 欧美图片一区二区| 欧美午夜精品免费| 成人在线免费看片| 久久99精品国产99久久| 丝袜美腿亚洲一区| 中文字幕求饶的少妇| 精品国产乱码久久久久久图片| 性欧美18xxxhd| 一区二区成人国产精品 | 超碰97国产在线| 亚洲啪啪91| 国产三级在线观看完整版| 欧美一区二区三区免费在线看| 超碰中文在线| 日韩.欧美.亚洲| 国产精品综合在线视频| 国产精品视频123| 大量国产精品视频| 欧美美女在线观看| 永久免费黄色片| 欧美性猛交xxxx乱大交极品| 米奇777四色精品人人爽| 国产精品久久久久久久久久直播 | 亚洲一二三四五| 色屁屁一区二区| 曰本三级在线| 色视频一区二区三区| 国产超碰在线一区| 中文字幕欧美人妻精品| 久久久久久久久久久网站| 日韩免费av| 精品无码在线视频| 日韩一区二区精品在线观看| 伊人久久视频| 天堂8在线天堂资源bt|