1. Khi chúng ta sử dụng từng loại linh kiện?
Nếu chúng ta sử dụng Redux, sẽ có hai loại thành phần:
- Components presentational: mối quan tâm về giao diện người dùng
- Linh kiện container: quản lý nhà nước
Redux của người sáng tạo Dan Abramov viết một bài báo Presentational and Container Components:
Thành phần trình bày được viết dưới dạng thành phần chức năng trừ khi chúng cần trạng thái, móc vòng đời hoặc tối ưu hóa hiệu suất.
Mặc dù chúng tôi không sử dụng Redux. Chúng ta cũng có thể tách các thành phần thành các thành phần trình bày và các thành phần Container.
- Thành phần sử dụng Thành phần chức năng và chỉ liên quan đến giao diện người dùng.
- Thành phần vùng chứa sử dụng Các thành phần lớp và mối quan tâm về trạng thái và hành vi. lợi ích
2. Chức năng Components'
bài viết
Cory Nhà React Stateless Functional Components: Nine Wins You Might Have Overlooked cho tôi biết những ưu điểm chức năng Linh kiện của, Linh kiện chức năng là hơn:
- đơn giản
- có thể đọc được
- kiểm chứng
3. Giới hạn của các thành phần chức năng '
Nhưng các thành phần chức năng là không trạng thái, là giới hạn của nó.
Nhưng may thay, phần lớn thời gian, chúng tôi không cần trạng thái.
thành phần chức năng không quốc tịch có ích cho dumb/presentational components. Các thành phần trình bày tập trung vào giao diện người dùng thay vì hành vi, vì vậy điều quan trọng là tránh sử dụng trạng thái trong các thành phần trình bày. Thay vào đó, trạng thái nên được quản lý bởi các thành phần “container” cấp cao hơn, hoặc thông qua Flux/Redux/etc. Các thành phần chức năng không quốc tịch không hỗ trợ các phương thức của nhà nước hoặc vòng đời. Đây là một điều tốt. Tại sao? Bởi vì nó bảo vệ khỏi sự lười biếng.
Hãy xem, bạn luôn muốn thêm trạng thái vào thành phần thuyết trình khi bạn đang vội. Đó là một cách nhanh chóng để hack trong một tính năng. Vì các thành phần chức năng không trạng thái không hỗ trợ trạng thái cục bộ, bạn không thể dễ dàng tấn công ở một số trạng thái trong giây phút lười biếng. Do đó, các thành phần chức năng không trạng thái theo chương trình thực thi việc giữ thành phần tinh khiết. Bạn buộc phải đặt quản lý nhà nước nơi nó thuộc về: trong các thành phần chứa cấp cao hơn.
Nguồn
2017-03-04 05:54:00
Nếu bạn cần thành phần của bạn để có phương pháp (event listeners, setters nhà nước, giai cấp các thuộc tính, vv) - sử dụng một lớp. Nếu bạn chỉ vẽ trực tiếp từ các đạo cụ - hãy sử dụng một thành phần chức năng. Họ giải thích điều này trong [tóm tắt] (https://facebook.github.io/react/blog/2015/12/18/react-components-elements-and-instances.html#summary) –