Câu hỏi

Life Cycle trong React hoạt động như thế nào ? Hãy chỉ ra flow của một life cycle?

entry
Hide Answers detail

image

Nhìn vào hình ảnh trên thì có 3 phần chính chúng ta sẽ tìm hiểu đó chính là

  • Mounting
  • Updation
  • Unmounting

Mounting

Chắc hẳn các bạn cũng biết khái niệm hook rồi đúng không - tức là cho phép người dùng can thiệp vào quá trình cập nhật UI với những thay đổi của state hoặc props. Các bạn nhìn cột Mounting có 3 phướng thức lifecycle đó là

  • componentWillMount()
  • render()
  • componentDidMount()

Như các bạn thấy đấy khi chúng ta refresh lại trang web hoặc mới truy cập thì 3 method lifecycle này sẽ lần lượt chạy. Một khi mà component được render trong lần đầu tiên thì phương thức componentWillMount() sẽ được gọi trước khi render. Chúng mình có thể hiểu như này, trước khi compont vô DOM bằng hàm render() thì hàm componentWillMount() sẽ được gọi. Chú ý chúng ta không nên gọi hàm setStae() trong hàm componentWillMount() vì nó chưa có DOM nào để tương tác.

componentDidMount() sẽ được gọi sau khi render component, ở đây cũng là nơi thực hiện các hàm AJAX, axios request, DOM hay update state sẽ được thực thi tại đây. Phương thức này cũng được kết nối với các Framwork khác hay database. Chúng mình sẽ đặt hàm setState() ở đây để tương tác vì Component đã được vô DOM.

Ví dụ

```js import React, { Component } from "react"; import logo from "./logo.svg"; import "./App.css";

class Demo extends Component { constructor(props) { super(props); // Don't do this! this.state = { color: "green" }; } componentWillMount() { console.log("componentWillMount da chay"); }

componentDidMount() {
  console.log("componentDidMount da chay");

...

You need to login to view

Suggest other questions

React Fiber là gì?

See the answer detail

Sự khác biệt chính về kiến trúc giữa JavaScript library như React và JavaScript framework như Angular là gì?

See the answer detail

Làm thế nào để việc render của React hoạt động chính xác khi chúng ta gọi setState?

See the answer detail

Làm thế nào để tránh việc cần phải binding trong React?

See the answer detail

Làm thế nào để sử dụng Polymer trong ReactJS?

See the answer detail