Bạn có nên sử dụng this.setState () khi sử dụng redux không?


111

Bạn có nên sử this.setState()dụng redux không? Hay bạn luôn phải cử hành động và dựa vào đạo cụ?


1
Không có gì sai khi có một số thành phần với trạng thái.
zerkms

3
Điều đó hoàn toàn phụ thuộc vào nơi mà trạng thái đang được sử dụng. Hãy coi các cửa hàng redux là toàn cầu. Bất kỳ thứ gì không cần phải mang tính toàn cầu đều có thể giữ nguyên riêng tư đối với một thành phần và con của nó.
azium

Câu trả lời:


139

Việc sử dụng rõ ràng setStatesẽ dành cho các thành phần giao diện người dùng có trạng thái hiển thị cục bộ, nhưng không liên quan đến ứng dụng toàn cầu. Ví dụ, một boolean đại diện cho việc một menu thả xuống cụ thể có được hiển thị tích cực hay không không cần phải ở trạng thái chung, vì vậy nó được điều khiển thuận tiện hơn bởi trạng thái của thành phần menu.

Các ví dụ khác có thể bao gồm trạng thái thu gọn / mở rộng của các dòng trong màn hình đàn accordion của một hệ thống phân cấp. Hoặc có thể là tab hiện được chọn trong điều hướng tab. Tuy nhiên, trong cả hai ví dụ này, bạn vẫn có thể chọn xử lý trạng thái giao diện người dùng trên toàn cầu. Ví dụ, điều này sẽ cần thiết nếu bạn muốn duy trì trạng thái mở rộng / thu gọn trong bộ nhớ của trình duyệt để nó được duy trì bằng cách làm mới trang.

Trong thực tế, việc triển khai các phần tử UI như vậy với trạng thái cục bộ thường dễ dàng nhất và cấu trúc lại chúng thành trạng thái toàn cục nếu cần.


23
Để theo dõi với điều này, có liên quan Redux mục Hỏi đáp nhấn mạnh rằng sử dụng setStatelà hoàn toàn tốt : redux.js.org/docs/faq/...
markerikson

2
Nếu bạn đang đi để bàn giao hoặc sử dụng server-side rendering, tôi nghĩ rằng bạn nên luôn luôn sử dụng Redux
neaumusic

Liên kết Câu hỏi thường gặp về Redux đã được cập nhật thành redux.js.org/faq/organizing-state
AnandShanbhag
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.