tỷ lệ cá cược bóng đá châu âu 2: Cách sử dụng Reactjs dễ dàng (8/6)

Cột kỹ thuật

[tỷ lệ cá cược bóng đá châu âu 2] Cách sử dụng Reactjs dễ dàng

Phạm vi radar OSS

6) Thông lượng

Nếu quá trình phát triển giao diện người dùng ở quy mô nhỏ thì có thể quản lý bằng cách chuyển đổi nó thành các thành tỷ lệ cá cược bóng đá châu âu, nhưng khi quy mô tăng lên, các thành tỷ lệ cá cược bóng đá châu âu khác nhau sẽ tương tác theo cách phức tạp, dẫn đến sự kiện phức tạp

Facebook đã đưa ra kiến trúc Flux để giải quyết vấn đề này

img/reactjs_flux-diagram-white-backgroundpng

Sơ đồ trên thể hiện kiến trúc Flux Vai trò của mỗi người như sau

Tên Vai trò
Chế độ xem phản ứng Giao diện người dùng được xác định trong ReactcreateClass
Người sáng tạo hành động Lớp có các phương thức hành động Để cập nhật giá trị Store từ UI, bạn phải trải qua lớp này
Người điều phối Lớp quản lý sự kiện để thông báo rằng một hành động đã được thực hiện
Cửa hàng Một lớp lưu trữ dữ liệu mà ứng dụng cần Cập nhật giá trị sau khi nhận được thông báo sự kiện của Người điều phối

Tôi nghĩ nếu bạn viết giải thích như thế này thì sẽ khó hiểu nên tôi sẽ giải thích bằng ReactRadarScope kèm theo ví dụ

Trước tiên, chúng ta hãy xem lớp Dot, một thành tỷ lệ cá cược bóng đá châu âu giao diện người dùng Dấu chấm là vòng tròn biểu thị thứ hạng của OSS Radar Scope®

img/reactjs_dotpng

Khi chuột di chuột qua Dấu chấm này, lệnh gọi lại sau sẽ được gọi

_onMouseOver:chức năng(e) {
RadarHành động.updateSelectedOss(cái này.đạo cụ.sản phẩm.id);
},

Đây sẽ là mũi tên từ ReactViews đến ActionCreators

v2a

RadarActionupdateSelectedOsschạy bộ điều phối như sau:

updateSelectedOss:chức năng(ossId) {
RadarDispatcher.công văn({
 loại hành động:Hằng số.UPDATE_SELECTED_OSS,
ossId:ossId
  });
},

Trong ví dụ này, không có mũi tên nào trỏ tới WebAPI, nhưng RadarDispatcherdispatch được gọi trực tiếp

img/reactjs_a2d

RadarStore chỉ định lệnh gọi lại cho RadarDispatcher, do đó quá trình được chuyển sang RadarStore

Bộ điều phối radar.đăng ký(chức năng(tải trọng) {
  chuyển đổi(tải trọng.loại hành động) {
    trường hợpHằng số.UPDATE_SELECTED_OSS:
_selectedOss= parseInt(tải trọng.ossId, 10);
     Cửa hàng radar.emitChange();
      nghỉ;
    mặc định:
      trở về đúng;
  }
  trở về đúng; //Không có lỗi Cần thiết theo lời hứa trong Dispatcher 
});

img/reactjs_c2s

Trong ví dụ này, hãy cập nhật giá trị của _selectedOss và thực thi RadarStoreemitChange() Các thay đổi sẽ được thông báo tới Thành tỷ lệ cá cược bóng đá châu âu chính vì nó xác định trình xử lý sự kiện cho RadarStore

img/reactjs_s2v

thành phầnDidMount:chức năng() {
Cửa hàng radar.addStoreChangeListener(cái này._radarStoreChange);
},
_radarStoreChange:chức năng() {
  cái này.setState({
 đã chọnOssId:Cửa hàng radar.getSelectedOss()
  });
},

Thành tỷ lệ cá cược bóng đá châu âu chính sử dụng giá trị được thông báosetStatevà cập nhật trạng thái Thành tỷ lệ cá cược bóng đá châu âu con sử dụng selectedOssId sau đó sẽ được vẽ lại

Thoạt nhìn có vẻ tẻ nhạt nhưng luồng dữ liệu một chiều giúp ứng dụng của bạn trở nên đơn giản Hiệu quả của kiến ​​trúc này trở nên rõ ràng hơn khi quy mô tăng lên

Mặt khác, đối với các ứng dụng nhỏ, kiến trúc nặng nề như vậy sẽ chỉ làm tăng số dòng mã nguồn và tôi không nghĩ bạn sẽ có thể trải nghiệm được niềm vui