当前位置: 首页 > news >正文

wordpress腾讯云插件下载失败seo方案书案例

wordpress腾讯云插件下载失败,seo方案书案例,百度小程序官方收费标准,建设电子商务系统网站SwiftUI中的StateObject和ObservedObject属性包装器指示视图更新以响应被观察对象的变化。虽然这两个属性包装器看起来很相似,但在使用SwiftUI构建应用程序时,有一个关键的区别需要理解。 两个属性包装器都要求对象符合ObservableObject协议。这个协议表…

SwiftUI中的@StateObject和@ObservedObject属性包装器指示视图更新以响应被观察对象的变化。虽然这两个属性包装器看起来很相似,但在使用SwiftUI构建应用程序时,有一个关键的区别需要理解。

两个属性包装器都要求对象符合ObservableObject协议。这个协议表明在对象改变之前有发布者(@Published变量)通知SwiftUI触发视图的重绘。

@StateObject的介绍和使用

@StateObject属性包装器与其他属性包装器不同,@StateObject负责创建和管理包装对象的生命周期,与@StateObject相关联的对象在拥有它的视图的生命周期内持续存在。

在一下两种情况下,应该使用@StateObject属性包装器:

  1. 初始化一次
  2. 由视图拥有的属性

初始化一次:当由于外部数据更改或重绘操作而重新计算绘制视图主体时,用@StateObject包装的属性不受影响。

属于视图:数据的生命周期与视图的生命周期相关联。一旦拥有数据的视图被释放,数据就会被释放。

在使用的时候也是比较简单的,如下:

import SwiftUIstruct VideosView: View {@StateObject private var viewModel = VideoViewModel()var body: some View {List(viewModel.notes, id: \.self) { video inText(video.title)}}
}final class VideoViewModel: ObservableObject {@Published private(set) var videos: [Video] = []
}

@StateObject属性包装器包装后的对象只初始化一次,并在视图更新期间持续存在。不过@StateObject属性包装器只能与引用类型一起使用,因为只有引用类型才能符合ObservableObject协议。

@ObservedObject的介绍和使用

上面了解了@StateObject属性包装器在拥有和管理SwiftUI视图中的数据方面起着重要的作用。不过,并不是每一块数据都需要或应该由显示它的视图拥有。这就是@ObservedObject属性包装器发挥作用的地方。与@StateObject不同的是,@ObservedObject被设计成在不获取所有权的情况下观察和响应引用类型的变化。

@ObservedObject并不拥有或管理它所观察对象的生命周期。它只是监听observable对象中的变化,并触发视图的更新。

如果数据是外部的,则选择@ObservedObject属性包装器。

如果视图需要显示由外部源(如父视图或共享数据存储)拥有和管理的数据,则选择@ObservedObject属性包装器。

使用的时候不需要初始化viewModel,而是由外部传入。

import SwiftUIstruct VideosView: View {@ObservedObject private var viewModelvar body: some View {List(viewModel.notes, id: \.self) { video inText(video.title)}}
}final class VideoViewModel: ObservableObject {@Published private(set) var videos: [Video] = []
}

使用@ObservedObject而不是@StateObject,因为视图不会创建和管理VideoViewModel。当视图被释放时,VideoViewModel不应该被释放。

如果发生外部数据更改,@ObservedObject属性包装器允许视图更新其主体。它使得在视图之间共享数据变得更加容易。与@StateObject不同,ObservedObject并不管理它所观察对象的生命周期,所以你需要确保对象的生命周期是在应用的其他地方管理的。

总结

@StateObject@ObservedObject有相似的特性,但是它们在SwiftUI如何管理它们的生命周期方面有所不同。当当前视图创建观察对象时,使用@StateObject属性包装器确保结果一致。当注入一个被观察对象作为依赖时,使用@ObservedObject

http://www.yayakq.cn/news/622393/

相关文章:

  • 山东聊城网站建设七牛云上市
  • 相亲网站建设策划方案免费自助开通网站
  • 高权重网站发外链广东企业微信网站建设
  • 网站开发后台能用c语言吗帮老板做网站
  • 怎样用flash做游戏下载网站城乡建设门户网站
  • 企业网站建设背景网站如何做微信支付宝支付宝
  • 网站静态化对seowordpress怎么修改关键词
  • 网站开发中 即将上线界面设计的软件
  • 深圳 网站设计公司价格网络营销课程设计心得体会
  • 怎样做视频直播网站青岛做公司网站的多吗
  • 网站怎么被百度收录小程序可视化开发工具
  • 自助建站网站模板网站开发都做些什么
  • 做网站代码第一不网络推广专员任职要求
  • iis网站衡水网站建设与制作
  • 广告网站模板下载一流的句容网站建设
  • php网站开发就业前景wordpress页脚添加百度收录
  • 网站后台怎么做qq群自动加阿里云网站建设好用吗
  • 山东系统建站怎么用南宁网站建设方案书
  • 网站开发毕设的需求分析广州企业建站网站
  • 淄博网站制作公司服务做网站买服务器大概多少钱
  • 建设网站公司挖掘挖掘工具销客多微分销系统
  • 使用模板怎么建站百度大数据分析工具
  • 首页设计公司台州关键词优化价格
  • 帮做钓鱼网站会怎样wordpress 删除评论
  • 网站开发中网页打印wordpress弹窗登录注册
  • 网站服务器ip宝塔wordpress更换域名
  • 电子商务网站建设评估工具网站的关键词多少合适
  • 推荐一些做电子的网站做电影网站程序好用吗
  • 上海建工网站深圳住房和建设局网站公开招标
  • 有关手机网站建设asp做网站 的pdf教程