/ ReactJS

#Day02 of React

Hôm nay mình đọc tiếp lý thuyết, dự kiến đọc thêm tầm chục ngày cho thật vững mới bắt tay vào làm thực hành.

Đầu tiên mình đọc lại thật kỹ Components và Props tại chính documentation của React trên đây. Sau đó mình tìm được câu đố khá thú vị:

// Function Definition
function add (x, y) {
    return x + y
}

// Function Invocation
add(1,2)

// Component Definition
class Icon extends React.Component {}

// What is this?
<Icon />

Nhiều người trả lời sai, mình cũng trả lời sai, hihi.

Bài học rút ra từ việc đọc hôm nay:

Phải đọc thật kỹ kiến thức nền. Xem tới xem lui thì hoá ra React có rất ít API, không rộng và lan man, nhưng đổi lại, nó có rất nhiều abstract layer nên khá sâu, mà nếu không để ý, mình sẽ dễ bị nhầm lẫn.

Như ở trên, mình cứ tưởng là nó khởi tạo một instance, nhưng thực ra không phải, túm gọn lại cũng chỉ là createElement() thôi. Trong cái <Icon /> đó, loay hoay thì mình cũng toàn viết JSX[1], nên luôn ghi nhớ là, đằng sau "hậu trường", Babel[2] sẽ biên dịch toàn bộ JSX ra React.createElement() hết.

Instance là một vấn đề khác của React.

Để dành đọc thêm


  1. Introducing JSX https://facebook.github.io/react/docs/introducing-jsx.html ↩︎

  2. Babel is a JavaScript compiler https://babeljs.io/ ↩︎