鸿蒙app开发中 基于hmrouter 通过函数的回调 传递 大量数据
·
1.场景原因。鸿蒙通过页面跳转的时候 会 先进行反序列化,然后传递过去在序列化,在进行超过1000首歌曲传递的时候 会造成页面的卡顿
2.解决方案 通过回调 函数 将 所需要的 数据 return 出去。 ---因为 函数不会被序列化
3.代码
A页面
private getSongCallback: ()=>Song[] = this.getSongs.bind(this);
//并将其赋值为绑定了当前实例(this)的 getSongs 方法。主要用于确保函数在被传递或调用时,内部的 this 指向始终正确(指向当前类实例)
//具体的函数
// 将1000首歌曲通过 函数纯递过去
getSongs(){
return this.songs;
}
// 具体的传递
getSongs:this.getSongCallback,
//B 页面进行接收并且调用
private getSongs: (() => Song[]) | null = null //接收
//调用
this.getSongs = options['getSongs']
this.reactiveSongList = this.getSongs?.() as Song[]
更多推荐

所有评论(0)