Những loại component trong React và cách sử dụng đúng

TỔNG QUAN
Hiện tại, React hỗ trợ 3 cách viết component đó là:

Choáng với góc cày Võ Lâm Truyền Kỳ Mobile của game thủ Việt
Tuesday December 04, 2018

Với một chiếc máy tính cấu hình khủng cùng phần mềm giả lập NOX, game thủ này đã có thể cày cùng lúc… 38 tài khoản Võ Lâm Truyền Kỳ Mobile Source: http://game4v.com/feed

The post Choáng với góc cày Võ Lâm Truyền Kỳ Mobile của game thủ Việt appeared first on KeoBong88.

Functional Component
React.Component
React.PureComponent

“Đổi gió” cuối tuần với Battlerite Royale, tựa game Battle Royale kết hợp MOBA đang cho chơi miễn phí
Saturday December 08, 2018

Stunlock Studios tiếp tục mở thêm một đợt cho chơi miễn phí Battlerite Royale cuối tuần này. Source: http://game4v.com/feed

The post “Đổi gió” cuối tuần với Battlerite Royale, tựa game Battle Royale kết hợp MOBA đang cho chơi miễn phí appeared first on KeoBong88.

Bài viết này giúp các bạn hiểu rõ hơn về đặc điểm, cách sử dụng chúng trong dự án của mình cũng như một số thủ thuật ngắn gọn được tóm gọn như nhau:

Góc M.U: Vì sao Lukaku ‘tịt ngòi’?
Thursday October 25, 2018

Người ta hay nói về sự thất thường của Paul Pogba – ngôi sao giúp Pháp vô địch World Cup 2018 nhưng lại tầm thường hơn hẳn trong màu áo M.U. Phải chăng, Romelu Lukaku cũng là trường hợp như thế, khi anh thường xuyên ghi bàn cho đội tuyển Bỉ nhưng lại “tịt ngòi”

Sử dụng Functional Component và React.PureComponent hết mức có thể, tránh lạm dụng React.Component.
Các Component unit(những component base) thì nên sử dụng React.PureComonent để viết và props chỉ nên có một cấp(shallow) và nó không có state thì có thể sử dụng Functional Component cũng không sao. Vì chỉ cần thằng cha chống render tốt thì cũng không đến lượt mấy thằng con re-render.
Các Component chỉ có props(hoặc chỉ render html tĩnh), không có state, những props thường là truyền cứng, ít thay đổi thì dùng Functional Component.
Các Component mà cần định nghĩa shouldComponentUpdate để chống render không cần thiết(tăng performance) thì sử dụng React.Component, nếu bạn không đụng đến shouldComponentUpdate thì không cần dùng. Đôi khi người ta return true hoặc false cho shouldComponentUpdate luôn để render cho nhanh. Cái này nói kỹ ở bài Component vs PureComponent

NỘI DUNG
☞ Functional Component:

Nó đơn giản chỉ là một function return về React Element mà thôi.
Không implement Lifecycle hook nên nói về tốc độ render nó là nhanh nhất.
Có 2 kiểu code Functional Component. Ví dụ:

// Cách 1:
function Demo(props) {
return (
<span>Hello world!</span>
);
}

// Cách 2:
const Demo = props => <span>Hello world!</span>;

Rõ ràng thì arrow function khiến ta code lẹ hơn, gọn hơn. Tuy nhiên, bạn nên chọn một trong 2 cách để viết tránh trình trạng code không trong sạch, mỗi người mỗi kiểu. Trên ý kiến cá nhân thì mình khuyến khích normal hơn vì normal function đó sẽ có tên và có thể bind context(this), còn arrow function thì sẽ không có tên(anonymous). Tuỳ sở thích mỗi người. Tuy nhiên mình có nhớ Airbnb recomment thằng normal function(chưa giải thích kỹ vì sao nên dùng), tuy nhiên mình chưa tìm lại được link, sẽ update sau.

☞ React.Component

Để sử dụng bạn cần extends React.Component.
Nó khác ở React.PureComponent một chổ duy nhất là shouldComponentUpdate.
shouldComponentUpdate mặc định là reference compare. Nghĩa là nếu nextProps === prevProps && nextState === prevState thì return false. return false thì sẽ không re-render. Tuy nhiên bạn có thể override lại được để chống render không cần thiết, từ đó tăng performance.

☞ React.PureComponent

Để sử dụng bạn cần extends React.PureComponent.
Nó là anh em sinh đôi nhưng thông minh hơn một chút nhờ sự khác biệt tại shouldComponentUpdate.
Bạn không thể override lại shouldComponentUpdate và nó là shallow compare. Nghĩa là các props con của nextProps === các props con của prevProps và các state con của nextState === các state con của prevState thì return false, return false thì sẽ không re-render nữa.

CHIA SẺ THÊM
Bài này chỉ giới thiệu các loại component có trong React và đặc điểm cũng như cách sử dụng. Nên để hiểu rõ hơn về anh em React.Component và React.PureComponent thì bạn đọc bài sau để hiểu hơn khi nào nên dùng React.Component, khi nào nên dùng React.PureComponent. Thế nào là reference compare, thế nào là shallow compare, thế nào là deep compare. Link Component và PureComponent.
Bài viết gốc được đăng trên: https://github.com/nguyenvanhoang26041994/dev-experiences/blob/master/React/how_many_component_types.md

admin
admin

Recent Comments

Categories