uniapp小程序页面跳转并传递参数
时间: 2023-08-02 19:05:08 浏览: 474
要在uniapp小程序中实现页面跳转并传递参数,可以使用uni.navigateTo或uni.redirectTo API。其中,uni.navigateTo是保留当前页面,跳转到应用内的某个页面,而uni.redirectTo是关闭当前页面,跳转到应用内的某个页面。
例如,要跳转到名为"target"的页面并传递参数"param1"和"param2",可以使用以下代码:
```
uni.navigateTo({
url: '/pages/target?param1=value1¶m2=value2'
})
```
在"target"页面中,可以通过以下代码获取传递的参数:
```
export default {
onLoad(options) {
console.log(options.param1) // 输出 "value1"
console.log(options.param2) // 输出 "value2"
}
}
```
另外,如果需要在跳转后返回上一个页面并传递参数,可以使用uni.navigateBack或uni.reLaunch API。其中,uni.navigateBack是返回上一个页面并传递参数,而uni.reLaunch是关闭所有页面,打开到应用内的某个页面并传递参数。
相关问题
uniapp小程序页面跳转传递对象
在uniApp小程序中,页面跳转并传递对象可以通过JSON.stringify()和JSON.parse()方法来进行。当你需要从一个页面传值到另一个页面时,可以先将对象转换成字符串,然后作为参数传递,接收端再将其解析回原始的对象形式。
例如:
**发送方(跳转前):**
```javascript
let data = { key: 'value' };
Page({
onShow() {
uni.navigateTo({
url: '../targetPage/targetPage',
query: { objData: JSON.stringify(data) } // 将对象序列化
});
}
})
```
**接收方(目标页面):**
```javascript
dataFromOtherPage = this.$options.query.objData;
// 解析数据
receivedData = JSON.parse(dataFromOtherPage);
```
这样,`receivedData`将会是一个和`data`相同的对象实例。
uniapp 小程序页面跳转
### UniApp 中实现小程序页面跳转的方法
在 UniApp 开发框架中,提供了多种方法来实现小程序页面间的跳转。每种方法适用于不同的场景,并具有特定的功能特性。
#### 常见的小程序页面跳转方式及其特点
1. **`uni.navigateTo`**
此方法用于保留当前页面,跳转到应用内的某个页面。但是不能跳转到 `tabBar` 页面。
```javascript
uni.navigateTo({
url: '/pages/example/example'
});
```
这里的 `url` 参数表示目标页面的路径,支持携带查询参数[^2]。
2. **`uni.redirectTo`**
关闭当前页面,跳转到应用内的某个页面。同样不支持跳转到 `tabBar` 页面。
```javascript
uni.redirectTo({
url: '/pages/example/example'
});
```
使用此方法时需要注意,由于会关闭当前页面,因此不适合返回操作后的场景[^2]。
3. **`uni.switchTab`**
跳转到 `tabBar` 页面,并关闭其他非 `tabBar` 页面。仅能用于跳转到定义在 `pages.json` 文件中的 `tabBar` 配置项所指定的页面。
```javascript
uni.switchTab({
url: '/pages/tabbar/home/home'
});
```
如果尝试通过该方法访问非 `tabBar` 页面,则会报错[^2]。
4. **`uni.reLaunch`**
关闭所有页面,打开到应用内的某个页面。通常用于重定向到首页或其他重要入口页面。
```javascript
uni.reLaunch({
url: '/pages/index/index'
});
```
适合于初始化或重新加载整个流程的情况[^2]。
5. **`uni.navigateBack`**
返回上一页或多级页面。可以通过设置 `delta` 属性控制返回的层数。
```javascript
uni.navigateBack({
delta: 1
});
```
当前页面栈管理依赖于此功能,合理利用可以提升用户体验。
#### 导航跳转传递参数示例
当需要向目标页面传递数据时,可以在 URL 后附加查询字符串形式的参数。接收方则通过 `onLoad` 生命周期函数获取这些参数。
```javascript
// 发起跳转并附带参数
goDetail() {
uni.navigateTo({
url: '/pages/detail/detail?id=80&name=example'
});
}
// 接收参数 (位于 detail.vue 的 onLoad 函数)
export default {
onLoad(options) {
console.log('接收到的id:', options.id); // 输出:80
console.log('接收到的名字:', options.name); // 输出:example
}
}
```
以上代码展示了如何发送以及解析简单的键值对参数[^1]。
#### 跳转至第三方小程序实例
除了内部页面切换外,还可以借助 `uni.navigateToMiniProgram` 实现跨小程序间通信。具体有两种途径——基于 AppId 和 Path 或者 Short Link 方式完成调用。
```javascript
const jumpByPath = () => {
uni.navigateToMiniProgram({
appId: 'wxdemo',
path: 'index?foo=bar',
success(res) {},
fail(err) {}
});
};
const jumpByShortLink = () => {
uni.navigateToMiniProgram({
shortLink: '#小程序://Example/...'
});
};
```
这两种模式各有优劣,实际开发过程中应依据业务需求选取合适方案[^3]。
#### 设置分享后自动跳转指定页面案例
为了让用户点击消息卡片能够进入开发者预设好的界面而非默认首页,可在对应事件处理逻辑处配置好回调地址即可达成目的。
```javascript
onShareAppMessage() {
return {
title: '欢迎体验我们的服务!',
path: '/custom/path/to/share/target'
};
}
```
如此一来,无论何时何地触发分享行为都会导向设定的新位置而不是原始链接指向之处[^4]。
阅读全文
相关推荐














