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

网站推广东莞如何买域名发布网站

网站推广东莞,如何买域名发布网站,深圳装修公司哪家比较好,东莞seo优化今天要分享的是仓颉开发语言中的懒加载。 先和初学者朋友们解释一下什么是懒加载。懒加载在代码中叫做LazyForEach,看到名字你一定能猜到它和ForEach的功能类似。只不过和ForEach的一次性加载所有数据不同,懒加载会根据屏幕可使区域按需加载数据&#x…

今天要分享的是仓颉开发语言中的懒加载。

先和初学者朋友们解释一下什么是懒加载。懒加载在代码中叫做LazyForEach,看到名字你一定能猜到它和ForEach的功能类似。只不过和ForEach的一次性加载所有数据不同,懒加载会根据屏幕可使区域按需加载数据,并且当内容滑出屏幕范围时,懒加载又会自动将这些内容销毁。

所以懒加载对于程序的性能有显著的优化,对于用户的体验也有大幅的提升,这一点幽蓝君在ArkTs语言中已经做过对比。当数据比较多比较大的时候强烈建议大家使用懒加载。

LazyForEach的用法和ForEach相比较为麻烦一些,它的数据源要求IDataSource类型,我们需要先自定义这个数据类型。IDataSource中有一些方法,主要用来获取数据和监听数据改变:

public interface IDataSource<T> {func totalCount(): Int64func getData(index: Int64): Tfunc onRegisterDataChangeListener(listener: DataChangeListener): Unitfunc onUnregisterDataChangeListener(listener: DataChangeListener): Unit
}

我在本地服务器放了几张高清图片,下面以加载这些高清图片为例,为大家演示懒加载的具体用法:

package ohos_app_cangjie_entry.page
import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*
import std.collection.ArrayList
import std.collection.*
class CoverDataSource <: IDataSource<String> {public CoverDataSource(let data_: ArrayList<String>) {}public var listenerOp: Option<DataChangeListener> = Nonepublic func totalCount(): Int64 {return data_.size}public func getData(index: Int64): String {return data_[index]}public func onRegisterDataChangeListener(listener: DataChangeListener): Unit {listenerOp = listener}public func onUnregisterDataChangeListener(listener: DataChangeListener): Unit {listenerOp = None}public func notifyChange(): Unit {let listener: DataChangeListener = listenerOp.getOrThrow()listener.onDataReloaded()}
}
func getDS(): CoverDataSource
{let data: ArrayList<String> = ArrayList<String>(['http://example.com/youlanApi/cover/lazy1.jpg','http://example.com/youlanApi/cover/lazy2.jpg','http://example.com/youlanApi/cover/lazy3.jpg','http://example.com/youlanApi/cover/lazy4.jpg','http://example.com/youlanApi/cover/lazy5.jpg','http://example.com/youlanApi/cover/lazy6.jpg','http://example.com/youlanApi/cover/lazy7.jpg','http://example.com/youlanApi/cover/lazy8.jpg','http://example.com/youlanApi/cover/lazy9.jpg','http://example.com/youlanApi/cover/lazy10.jpg','http://example.com/youlanApi/cover/lazy11.jpg'])let dataSourceStu: CoverDataSource = CoverDataSource(data)return dataSourceStu
}
let coverDataSource: CoverDataSource = getDS()
@Entry
@Component
public  class lazypage {func build(){Column(30) {Grid {LazyForEach(coverDataSource, itemGeneratorFunc: {cover: String, idx: Int64 =>GridItem {Image(cover).width(100.percent).height(300)}})}.height(100.percent).width(100.percent).columnsTemplate('1fr 1fr').columnsGap(5).rowsGap(5).backgroundColor(0xFFFFFF).padding(right: 5, left: 5)}}
}

运行效果如下:

以上就是今天的内容分享,感谢阅读。##HarmonyOS语言##仓颉##购物#

http://www.sczhlp.com/news/139422/

相关文章:

  • 奉节做网站咸阳做网站xymokj
  • 做设计网站赚钱吗wordpress 下载页面模板怎么用
  • wordpress搜索图标seo网络营销是什么意思
  • 深圳地区网站建设网络营销推广专员
  • 网站 建设理由WordPress仿百家号主题
  • 开发定制网站全国中小企业查询
  • 网上书城网站开发的目的与意义临沂网站哪家好
  • 能打开任何网站的浏览器wordpress 爬取
  • 搭建一个网站需要多久战略策划
  • 《etcd库——键值存储系统》 - 教程
  • 做网站可以把文字做成图片吗wordpress微商城
  • 网站建设与管理的条件网页游戏不花钱的
  • 网站仿站教程网站空间的控制面板首页
  • 网站集约化建设方案模板网站建设青岛
  • 河南网站建设推广运营网站获取qq
  • 广州企业网站制作公司百度网站免费电话
  • 有一个函数只会返回0和1,且返回0和返回1的概率不等。要求只能通过这个函数生成一个等概率返回0和1的函数
  • AI智能体开发实战:17种核心架构模式详解与Python代码实现
  • 代码随想录算法训练营第十天 | 232. 用栈实现队列、225. 用队列实现栈、20. 有效的括号、删除字符串中的所有相邻重复项
  • 学校网站做链接建设电商网站需要多少钱
  • 电商网站开发 文献综述做做同城网站好还是做垂直网站好
  • 淘宝客做网站要钱吗网速测速
  • 南京做信息登记公司网站微商城和小程序区别
  • 成都市建设网站公司网站没被收录怎么办
  • 常见的网站布局结构网站微信建设方案
  • asp做的静态网站卡不卡双鱼儿 网站建设
  • 崇信县门户网站领导动态机械订单加工网
  • 2025.9.26总结 - A
  • MySQL性能优化
  • 关于“悬荡悟空”决策机制的简要技术说明