uniapp的App.vue根组件中获取当前路由信息是个空数组怎么办
时间: 2023-11-30 21:02:53 浏览: 172
如果在 `App.vue` 根组件中通过 `uni.getCurrentPages()` 获取当前页面栈信息得到的是空数组,可能是因为 `uni.getCurrentPages()` 方法只能在页面中使用,而不能在 `App.vue` 根组件中使用。因此,可以考虑在 `App.vue` 根组件中监听路由变化,将当前路由信息保存在全局变量中,例如:
1. 在 `App.vue` 根组件的 `onLaunch` 生命周期函数中,将当前路由信息保存在全局变量中:
```
onLaunch() {
// 将当前路由信息保存在全局变量中
uni.$appCurrentPage = this.$mp.page;
}
```
2. 在 `App.vue` 根组件的 `onShow` 生命周期函数中,更新全局变量中的当前路由信息:
```
onShow() {
// 更新全局变量中的当前路由信息
uni.$appCurrentPage = this.$mp.page;
}
```
3. 在需要获取当前路由信息的地方,从全局变量 `uni.$appCurrentPage` 中获取当前路由信息,例如获取当前页面的路径:
```
const currentPath = uni.$appCurrentPage.route;
```
4. 如果需要获取当前页面的参数,可以从 `uni.$appCurrentPage.options` 中获取,例如获取当前页面的 id 参数:
```
const currentId = uni.$appCurrentPage.options.id;
```
需要注意的是,由于 `uni.$appCurrentPage` 只能在小程序中使用,在 H5 和 App 中无法使用。如果需要在 H5 和 App 中获取当前路由信息,可以考虑使用第三方路由库如 Vue Router。
阅读全文