HarmonyOS 关于hmosworld Navigation一些管理问题的疑问

在hmosworld官方项目中的mainPage里,

@Provide(‘appPathStack’) appPathStack: NavPathStack = new NavPathStack();

@Provide(‘minePathStack’) minePathStack: NavPathStack = new NavPathStack();

@Provide(‘discoverPathStack’) discoverPathStack: NavPathStack = new NavPathStack();

@Provide(‘settingPathStack’) settingPathStack: NavPathStack = new NavPathStack();

我看minePathStack是管理mineView里面路由的,discoverPathStack管理探索页路由的,这个appPathStack的作用是干什么的?在探索View中我发现有

@Consume(‘discoverPathStack’) discoverPathStack: NavPathStack;

@Consume(‘appPathStack’) appPathStack: NavPathStack;

这种声明,用于不同的跳转逻辑,是有什么特殊意义吗?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

问题一:NavPathStack 表示路由栈信息。appPathStack 在首页MainPage 中 Navigation(this.appPathStack) {} 使用,是用于管理当前页面的(即首页),在Navigation组件中,里面绘制了首页展示信息如tab标签等,里面没有涉及到this.appPathStack .pushPath({ name: “xxx” }),所以他没有路由跳转,只是管理当前首页展示页面,没有其他路由栈。

问题二:主要是理解这个@Provide和@Consume的关系:

@Provide和@Consume,应用于与后代组件的双向数据同步,应用于状态数据在多个层级之间传递的场景,实现跨层级传递。

其中@Provide装饰的变量是在祖先组件中,可以理解为被“提供”给后代的状态变量。@Consume装饰的变量是在后代组件中,去“消费(绑定)”祖先组件提供的变量。

相关资料:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-provide-and-consume-V5

不同的@Consume修饰的 NavPathStack 是子组件去绑定父组件的NavPathStack,用来实现调用不同的路由栈进行页面跳转。discoverPathStack是管理探索页路由的,appPathStack是管理首页的。

分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 使用Navigation一些疑问
349浏览 • 1回复 待解决
关于designWidth一些问题
342浏览 • 1回复 待解决
HarmonyOS 关于VPN一些使用问题
104浏览 • 1回复 待解决
关于快速修复一些问题
784浏览 • 1回复 待解决
关于鸿蒙BLE一些问题
4335浏览 • 1回复 待解决
关于华为应用级AT一些问题
12045浏览 • 3回复 待解决
关于laravel一些难受问题,连表查询
3150浏览 • 1回复 待解决
关于liteos,有一些疑惑
9076浏览 • 3回复 待解决
关于鸿蒙和uboot间一些问题
9239浏览 • 2回复 待解决
关于liteos-a一些问题想请教各位
8663浏览 • 2回复 待解决
关于系统信息一些参数询问
307浏览 • 1回复 待解决
docker 线上使用一些问题
2508浏览 • 1回复 待解决
一些帐号授权相关问题
8740浏览 • 2回复 待解决
HarmonyOS 有关Video组件一些问题
29浏览 • 1回复 待解决
DevEco Studio 升级后一些问题
10054浏览 • 1回复 待解决
HUAWEI DevEco Device Tool一些问题
8649浏览 • 3回复 待解决
View引用和实例化一些问题
313浏览 • 1回复 待解决