Tại sao chạy code trong dispatchqueue main tăng ram
Show Rx là một tính toán trừu tượng chung được thể hiện thông qua Observable Github: https://github.com/ReactiveX/RxSwift Tài liệu nền tảng chéo có thể được tìm thấy trên ReactiveX.io. Giống như Rx ban đầu, mục đích của nó là cho phép dễ dàng cấu thành các hoạt động không đồng bộ và các luồng sự kiện / dữ liệu. Ví dụ: Trong lập trình bình thường (imperative programming) a = b + c , tức a được gắn với kết quả cộng của b và c. Khi b với c thay đổi thì tất nhiên sẽ không ảnh hưởng tới a, nhưng trong Reactive Programming này a sẽ tự động thay đổi khi b hoặc c thay đổi, kết quả của a sẽ lập tức thay đổi theo. Bạn có thể thấy với tác vụ như vậy thì trong iOS có thể bạn nhớ đến KVO (Key-Value-Observing)/Property Observer, và đây cũng chính là kĩ thuật chính của Reactive Programming. KVO quan sát, hoạt động không đồng bộ và luồng đều được thống nhất theo trình tự trừu tượng. Đây là lý do tại sao Rx rất đơn giản, thanh lịch và mạnh mẽ. Ví dụ : KVO khi ta thay đổi thuộc tính "date" của class MyDate.
Với ví dụ trên bạn có thể thấy khi tạo 1 class MyDate có thuôc tính date, khi nào thuộc tính date thay đổi thì sẽ bắn tới 1 hàm được override observeValue. Nếu dùng KVO sẽ có những khuyết điểm:
Vậy tại sao nên dùng RXSwift:
Kiến trúc đơn giản của RxSwift Các thành phần tổng quan cơ bản của RXSwift:
Trong RXSwift có 5 loại scheduler cho bạn sử dụng :
Tham khảo: RxSwift, ReactiveX, Medium Cảm ơn các bạn đã theo dõi! |