JKPacket权威指南——JKPacket的特点

news/2024/7/20 21:24:47 标签: JKPacket, iOS, livedata, lifecycle, rxswift, 响应式编程, swift

感知组件生命周期

  JKPacket参考了android的JetPack的部分思想,使响应式编程在框架层面能够感知到组件生命周期的变化。如果处于活跃状态该组件下触发的变化通知就会立即被触发;如果处于非活跃状态,该组件下触发的变化通知会处于pending状态,并保留最新的数据,等到组件状态重新变为活跃时,使用pending的最新数据重新触发一次变化通知。备注:这里的组件可以是UI组件,也可以是提供事务处理能力的非UI组件或者服务

融合RXSwift

  JKPacket融合了RXSwift,因此在监听数据变化的时候,通过在onSubject这个回调内,可以充分基于RXSwift进行特殊处理,比如:指定监听的线程是否在主线程,debouce,throttle等大部分的RXSwift操作都能在这里进行设置。开发者也不用关心RXSwift的dispose相关操作,框架层面已经帮大家处理好了。让开发者能够根据业务需求对需要监听的数据进行各种的装饰操作,也降低了RXSwift的使用门槛。

lifecycleAge.observe(owner: self, onSubject: { subject in
 //此处可以使用RXswift相关的知识对监听的数据进行装饰性操作
            return subject.debounce(RxTimeInterval.seconds(1), scheduler: MainScheduler.instance)
        }) { value in
            print("JKObserveLifeCycleDataViewController value:\(String(describing: value))")
        }

支持数据回放变化

  JKPacket中KReplayObserver,JKReplayLiveData配合起来实现了在组件处于不活跃状态时把接收到的变化数据都暂存起来,等到组件的状态变成活跃状态时,按照顺序将暂存的变化数据依次发送出来。满足了某些业务场景下组件恢复到活跃状态时,需要回放非活跃状态接收的数据。


http://www.niftyadmin.cn/n/5127201.html

相关文章

vscode 提升小程序开发效率的必备插件与工具

1,微信小程序开发助手(WeChat Snippet):提供了小程序代码片段、模板和快速生成页面的功能,加快了开发速度。 2,小程序助手(Minapp):提供了小程序项目创建、编译、预览和…

伦敦银条有多大投资价值?

伦敦银本来是指存放在伦敦地下金库的实物白银银条,这个市场上银条的标准规格为1000金衡盎司。但随着信息科技技术的进步以及贵金属市场的发展,现在的伦敦银交易已经完全实现了电子化。 在当今的贵金属投资市场, 伦敦银的交易网络已经遍布全球…

html截取最后几个字符

html截取最后几个字符 string str"123abc456"; int i3; 1 取字符串的前i个字符 strstr.Substring(0,i); // or strstr.Remove(i,str.Length-i); 2 去掉字符串的前i个字符: strstr.Remove(0,i); // or strstr.Substring(i); 3 从右边开始取i个字符&…

ChatGPT如何赋能探究深度学习、神经网络与卷积神经网络

计算机技术的发展和互联网的普及,使信息处理和传输变得更加高效,极大地改变了金融、商业、教育、娱乐等领域的运作方式。数据分析、人工智能和云计算等新兴技术,也在不断地影响和改变着各个行业。 如今,我们正在见证人工智能技术…

C++类内定义友元却无需类外声明的特殊情况

C类内定义友元却无需类外声明的特殊情况 将一个全局函数作为某个类的友元时&#xff0c;可以在类内定义函数&#xff0c;但必须在类外对函数进行声明。但有一种特殊情况并不需要再次声明。例如&#xff1a; #include <iostream>class Person { public:friend void func…

Instagram引流技巧:如何充分利用社交媒体来增加独立站流量

在数字时代&#xff0c;社交媒体已成为推广产品、服务和内容的重要工具之一。Instagram&#xff0c;作为其中之一&#xff0c;以其视觉化特点和庞大的用户基础&#xff0c;为独立站和个人品牌提供了难得的机会。本文Nox聚星将和大家探讨如何充分利用Instagram&#xff0c;将其作…

简单的谈谈VPN是什么、类型、使用场景以及工作原理?

作者&#xff1a;久孤776 个人主页&#xff1a;久孤776_python-CSDN博客 作者会持续更新网络知识以及关于python的知识期待你的关注 目录 一、vpn是什么 二、vpn的类型 1. 远程访问VPN 2. 点对点VPN 3. 入口站点VPN 4. 专线VPN 5. 客户端对站点VPN 三、VPN的使用场景 1…

Linux C语言开发(续)

一、二维数组的定义和存储 一、二维数组的定义 1、二维数组的应用&#xff1a;图、方阵 2、数组元素的存放顺序&#xff1a;内存是一维的&#xff0c;二维数组&#xff1a;按行优先 a[1]:表示第一行&#xff0c;也表示a[1][]的所有元素 二、二维数组的初始化、遍历 1、元素的…