iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 11
0
自我挑戰組

如何成為工程師? (從工地到前端工程師)系列 第 11

[Day 11] React Component Life Cycle, 我是有生命的

  • 分享至 

  • xImage
  •  

背景

Component Life Cycle 也是React裡面的新概念. 其實是life cycle是在決定這個component在什麼時候要做什麼事情. 這時候你應該覺得, danny 你是在講三小? 沒關係, 我示範給你看, 然後之後我們在講解.

Live Demo

我要用我的netflix專案來來玩一下, 這個專案我去模仿netflix的一部分. 我的專案有搜尋,即將上映, 還有電影介紹的功能.

Live Demo

我在我的netflix 專案裡面, 在電影介紹頁(MovieShow.js)裡面有用componentWillMount, componentDidUpdate.
第一個componentWillMount代表在組件要被插入真實的 DOM 的時候會執行以下的動作.

我用componentDidUpdate 來判定說如果url有變動的話要重新抓資料. 如果不這樣的話, 網頁不會更新. 這個雷也卡了我好久.

//MovieShow.js
...
  componentWillMount() {
    this.props.fetchMovie(this.props.match.params.id)
    this.props.fetchCast(this.props.match.params.id)
    this.props.fetchTrailer(this.props.match.params.id)
  }

  componentDidUpdate(prevProps, prevState) {
    if(prevProps.match.params.id !== this.props.match.params.id){
      this.props.fetchMovie(this.props.match.params.id)
      this.props.fetchCast(this.props.match.params.id)
      this.props.fetchTrailer(this.props.match.params.id)
    }
  }
...

那實際的流程程序請參考以下圖.

react lifecycle

這張表看起來很恐怖但是不用擔心你不會用到大部分的function. 像我用到現在我也才碰過4個而已, 大部份我們只會用到 componentWillMount, componentDidMount, 還有 componentWillUpdate.

參考連結


上一篇
[Day 10] React, 我一個前端框架
下一篇
如何用react-router來做single page web application,SPA
系列文
如何成為工程師? (從工地到前端工程師)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言