Giới thiệu: Tại sao quản lý nhà nước ở bản địa

Quản lý nhà nước là xương sống của bất kỳ ứng dụng bản địa tương tác nào. Làm thế nào bạn lưu trữ, cập nhật và chia sẻ dữ liệu trực tiếp tác động đến dữ liệu của ứng dụng này trực tiếp khả năng trả lời, gỡ lỗi và duy trì. Tính năng quản lý thấp dẫn đến việc hạn chế các lỗi không dự đoán trước được, và một chu kỳ phát triển chậm chạp. Khi ứng dụng của bạn phát triển từ vài màn hình tới một hệ thống phức tạp với dữ liệu thời gian thực, khả năng ngoại tuyến, và vai trò của người dùng không thể sửa chữa được. Bài này đi qua các thực hiện dễ dàng nhất từ [FL] [FT] [FT] [N] để làm việc sử dụng [các công cụ]

Hiểu rõ tình trạng của bản địa phản ứng

Tình trạng của người bản địa phản ứng có thể thay đổi theo thời gian và ảnh hưởng đến những gì người dùng thấy, từ trạng thái bật/tắt của nút bật/tắt đến hồ sơ cá nhân của người dùng xác thực hoặc danh sách các sản phẩm có thể phân loại:

  • Tình trạng đăng [FLT: 1] – dữ liệu chỉ cần một thành phần hoặc một nhóm nhỏ thành phần anh em cần. Thí dụ: tạo thông tin nhập, chỉnh sửa, tiến trình hoạt hình.
  • Tình trạng của dân Global [FLT: 1] – dữ liệu mà nhiều thành phần không liên quan trên ứng dụng cần truy cập. Thí dụ: người dùng, xe hàng, ưu tiên chủ đề, số đếm thông báo.

Chọn nơi và làm thế nào để lưu trữ mỗi phần của nhà nước là bản chất của quản lý bang. mục tiêu là giữ cho dữ liệu lưu thông có thể dự đoán trước, tránh những người tái lập lại không cần thiết, và làm cho các bang thay đổi dễ dàng để theo dõi.

Những thực hành tốt nhất để quản lý nhà nước

1. Bắt đầu với chính quyền cục bộ: và

Những móc được xây dựng bởi các móc đầu tiên và thường là công cụ tốt nhất. [FLT: 0] Dùng [FLT: 1] [FLT: 1] là lý tưởng cho các mảnh đơn giản, độc lập của trạng thái - chẳng hạn, hộp kiểm tra hay nhập văn bản. Khi các giá trị liên quan đến nhau [FLT:], chuyển sang [FLT: 1] [FL:] cách dùng [FL: 3). Nó cung cấp một mô hình cập nhật có thể đoán trước qua việc giảm và hành động, tương tự như phạm vi của Red, nhưng từ một thành phần riêng lẻ hoặc nhỏ của cây. Hãy từ chối thông tin liên quan đến thông tin toàn cầu; bạn có thể luôn luôn luôn luôn có thể sử dụng mã hóa nó để kiểm soát lại.

Nâng cấp tình trạng chỉ khi cần thiết

Khi hai thành phần hoặc nhiều thành phần khác cần chia sẻ cùng một dữ liệu, cách tiếp cận của cụm từ này là “gặt lên trạng thái đó đến tổ tiên chung nhất của họ.

3. Dùng đoạn văn bản API (với ) cho chia sẻ vừa-Scale

Khi việc khoan trở nên đau đớn, gửi các lời tiên tri qua năm hay nhiều lớp khác, hoặc cách giải quyết « Văn cảnh của bạn » (ReLT: 1) bên trong nhà cung cấp để tập trung sự cập nhật logic. Tạo một ngữ cảnh chứa đối tượng và chức năng gửi. Kết hợp nó với [FLT: 0] mật khẩu [FLT: 0] [FLT: 1] bên trong nhà cung cấp để tập trung lý luận. Hình này hoạt động rất tốt cho ứng dụng cỡ vừa: sắc thái, địa phương, trạng thái hay tính năng xác thực. Hãy cẩn thận: mỗi người tiêu dùng của một bộ sửa đổi ngữ cảnh (FLTTT: 1 trong bối cảnh. Để phân chia ngữ cảnh này, chia [F]. [F], Bản phân biệt ngữ cảnh: T] khi bạn cần thiết lập lại một số ứng dụng toàn cầu, hoặc đặc điểm: để ghi rõ ràng, hoặc đặc trưng cho thư viện có thể: [F].] để ghi chú riêng một số ứng dụng, hoặc phần lớn, hoặc phần lớn của thư viện có thể cập nhật tính năng lượng nhất định dạng thức chính xác định dạng thức toàn cầu. — Khi bạn cần thiết.

Nhận một thư viện quản lý quốc gia cho các ứng dụng lớn

Một khi ứng dụng của bạn đạt đến hàng chục màn hình, nhiều dữ liệu không rõ ràng lưu thông, và các quy tắc kinh doanh phức tạp, một thư viện mạnh mẽ trở nên cần thiết.

  • Redux công cụ t [TLT:1): phiên bản chính thức, được đánh giá cao của Redux. RTK cắt bảng chọn và xây dựng sẵn để hỗ trợ một điều gì đó có thể được. Nó ép buộc không thể sử dụng qua l l lm, thiết lập thiết lập trình đơn, và tích hợp với thiết bị lỗi cao cấp. Để các nhóm đó dự đoán khả năng và thông tin một chiều đơn. [FL: 2] [FL] [F: FL] Tài liệu [FL].] [F: FL].] [F: FL].
  • Trình quản lý nhà nước nhỏ ): Một người có chức năng nhẹ, móc đầu tiên với một hệ thống ADI tối thiểu. Bạn tạo một cửa hàng nhỏ dùng và truy cập trực tiếp từ móc. Zu Stand tránh nhiều bộ lọc hơi của Redux trong khi vẫn còn cung cấp phần mềm giữa (người sử dụng, devtooltool) và hiệu suất tuyệt hảo.
  • MobX-Ste-Tree [MST:1) [FLT: 1]: Dùng trạng thái có thể quan sát và tính năng tiềm ẩn. Định nghĩa mô hình với kiểu, hành động, và tính chất đã tính toán. MST tự động theo dõi các thành phần chỉ tiêu thụ các giá trị thay đổi. Đối với các nhà phát triển tuyệt vời, những người thích một phương pháp theo dõi theo hướng tự động, mô hình và muốn tối ưu hóa tự động.

Chọn dựa trên sự quen thuộc của đội bạn và những nhu cầu cụ thể của ứng dụng. Đối với phần lớn các dự án mới, Raft hoặc ) zuP [FLT: 3] là những điểm khởi đầu tuyệt vời. Tránh nồi hơi nóng của Redux thô của năm; luôn luôn dùng dụng cụ.

5. Quản lý trạng thái Asynchronous với các công cụ đã hiến dâng

Dữ liệu không thể tưởng tượng của máy phục vụ (ABL call, jwQL, Firese) xứng đáng được điều trị riêng. Đừng lẫn trạng thái máy chủ với trạng thái UI trong cùng cửa hàng toàn cầu. Thư viện đã hiến dâng như gọi Thao tác phụ, bỏ qua, cập nhật, và cập nhật lạc quan. Họ giảm thiểu số lượng mã lệnh quản lý. Họ viết chúng với thư viện [R[R] hoặc phụ đề [FLT:] cho ứng dụng] [FTT] để biết cách ly [FTTT].FT].

6 Tình trạng kiên trì khi thích hợp

Nhiều ứng dụng bản địa phản ứng cần phải sống sót [FLT: 1) cho nhu cầu thiết lập phím, dữ liệu nhập khẩu. Hãy bền bỉ chia phần quan trọng của trạng thái thành kho cục bộ. Hãy dùng để có hiệu suất cao hơn. Lib: 1] để [FLT: 1] cho các yêu cầu giá trị phím đơn giản, nhưng hãy xem [FLTT:] [LTT- n] [FLT- m] [FT:] để có hiệu suất cao hơn. Quyền ghi lưu trữ các dữ liệu riêng, không bao giờ nhất thiết phải ghi chú thích hợp. [FLT] [FLT] [t] [t] và không bao giờ duy trì tập tin mật mã hoá đúng [t].

7. Cách làm báp têm: & mramoation and pickers

Những người phục hồi quá mức là nguyên nhân hàng đầu của các vấn đề hiệu quả trong các hoạt động phản ứng của người bản địa.

  • Dùng Phục hồi.memo) cho các thành phần thường nhận cùng một đạo cụ.
  • Dùng và để ổn định đối tượng và tham chiếu chức năng được thông qua như là các đạo cụ.
  • Khi dùng Redux hay các thư viện tương tự, luôn luôn chọn những lát dữ liệu tối thiểu có bộ chọn ghi nhớ (v. d., [FLT: 10] từ việc chọn lại). Việc này ngăn cản thành phần này phục hồi lại khi phần không liên quan đến việc thay đổi cửa hàng.
  • Cho các thiết lập địa lý-Havy, nhà cung cấp tách biệt để chỉ có các subtree re-renders liên quan trên cập nhật.

Phân tích ứng dụng của bạn với thiết bị phản ứng DevT và màn hình hiệu suất của Metro để xác định điểm nóng.

8 Kiểm tra logic của bạn

Lập luận quản lý nhà nước nên được kiểm tra riêng lẻ, không cần lắp đặt toàn bộ cây thành phần. Đối với Redux, hãy viết đơn vị thử nghiệm cho bộ giảm và bộ tạo hành động sử dụng [FLT: 0] [FLT: 1); Đối với ZuffP: 1]. Đối với Zuffer, thử nghiệm trực tiếp bằng cách gọi bộ thu nhỏ và thiết lập. Đối với văn bản + sử dụng bộ giảm và thử nghiệm nó như một chức năng tinh khiết. Tính tin tưởng cho bạn làm việc chính xác, đặc biệt khi xử lý các trường hợp giống như trường hợp đua hay cập nhật. [L: 2] Thư viện tự động sản xuất [F: kiểm tra: kiểm tra tính năng in/ s có thể làm đúng các thành phần.

Mẹo phụ

  • Giữ cho bang tối thiểu : giá trị Derive từ tình trạng đã có khi có thể (v. d., tính toán tổng giá từ một dãy mục thay vì lưu trữ nó riêng lẻ).
  • [FLT: 0] Tính khả thi là phím [FLT: 1]: luôn luôn trả lại các đối tượng mới khi cập nhật nhà nước. Dùng các nhà điều hành lan rộng / , hoặc thư viện như ln để ngăn chặn lỗi đột biến.
  • Đối với các hiệu ứng phụ ): Đối với Redux, hãy dùng hoặc Redux Saga / Thunk. Đối với Zump, đơn giản chức năng bên trong cửa hàng xử lý hiệu ứng phụ sạch sẽ.
  • [FLT: 0] Đóng gói có chọn ): Dùng đoạn đáp để tìm đoạn mở hay SWR để lưu trữ trong máy phục vụ. Đừng sao chép dữ liệu máy phục vụ vào cửa hàng cục bộ, trừ khi bạn cần sửa nó ngoài và đồng bộ sau.
  • Khi ứng dụng của bạn tiến triển, xem lại cấu trúc nhà nước. Di chuyển trạng thái địa phương sang ngữ cảnh hoặc thư viện khi khoan khai thác trở nên lộn xộn. Gỡ bỏ lát trạng thái không dùng.

Kết luận

Quản lý nhà nước hiệu quả ở bản địa phản ứng không phải là theo một kiến trúc đã chỉ định duy nhất — nó là chọn công cụ đúng cho mỗi trạng thái và giữ cho dữ liệu của bạn có thể đoán trước. Bắt đầu đơn giản với và . Khả năng này co dãn để chia sẻ vừa phải, và áp dụng thư viện như Redux Cryt hay Zupry khi ứng dụng của bạn đòi hỏi một cửa hàng lỗi chính. Luôn luôn tách rời nhà nước khỏi khách sử dụng công cụ tìm kiếm. Và không bao giờ quên: ghi nhớ, chọn cách khôn ngoan, kiểm tra và chỉ dẫn.

Bằng cách gieo những thực hành tốt nhất vào dòng chảy làm việc phát triển của bạn, bạn có thể xây dựng những ứng dụng phản ứng của người bản địa mà vẫn có thể duy trì, và một niềm vui để làm việc trên - ngay cả khi họ phát triển đến hàng chục ngàn dòng mã.