uniapp页面间传参的方法

uniapp中,常见的页面传参方式有以下几种:

  1. URL传参

可以在跳转页面时,在url中添加参数,通过在目标页面的onLoad函数中的options参数获取传递的参数。示例代码如下:

在源页面中:

复制代码
uni.navigateTo({
    url: '/pages/targetPage/index?id=123&name=test'
});

在目标页面中:

复制代码
onLoad: function(options) {
    console.log(options.id);
    console.log(options.name);
}
  1. Vuex状态管理

可以在源页面设置一个state,然后在目标页面中获取该state的值。示例代码如下:

在源页面中:

复制代码
this.$store.state.id = 123;
this.$store.state.name = 'test';
uni.navigateTo({
    url: '/pages/targetPage/index'
});

在目标页面中:

复制代码
computed: {
    id: function() {
        return this.$store.state.id;
    },
    name: function() {
        return this.$store.state.name;
    }
}
  1. uni传参

可以在源页面使用uni对象的navigateTo方法传参,在目标页面中使用uni对象的getOpenerEventChannel方法获取传递的参数。示例代码如下:

在源页面中:

复制代码
uni.navigateTo({
    url: '/pages/targetPage/index',
    success: function(res) {
        var channel = uni.getOpenerEventChannel();
        channel.emit('passData', {id: 123, name: 'test'});
    }
});

在目标页面中:

复制代码
onLoad: function() {
    var _this = this;
    var channel = uni.getOpenerEventChannel();
    channel.on('passData', function(data) {
        _this.id = data.id;
        _this.name = data.name;
    });
}

其中,emit方法用于向目标页面传递数据,on方法用于监听由emit方法传递过来的数据。

相关推荐
H_z_q24012 分钟前
web前端(HTML)银行汇款单的制作
前端·html
小宇的天下5 分钟前
Synopsys Technology File and Routing Rules Reference Manual (1)
java·服务器·前端
@PHARAOH6 分钟前
WHAT - Vercel react-best-practices 系列(四)
前端·react.js·前端框架
今天也要晒太阳47315 分钟前
对el-upload的上传文件显示名做长度限制
前端
Thomas游戏开发17 分钟前
分享一个好玩的:一次提示词让AI同时开发双引擎框架
前端·javascript·后端
NEXT0619 分钟前
别再折磨自己了!放弃 Redux 后,我用 Zustand + TS 爽到起飞
前端·react.js
donecoding20 分钟前
Sass 模块化革命:告别 @import,拥抱 @use 和 @forward
前端·css·代码规范
m0_7482523822 分钟前
Angular 2 数据显示方法
前端·javascript·angular.js
2501_9447114326 分钟前
现代 React 路由实践指南
前端·react.js·前端框架
by————组态35 分钟前
睿控(Ricon)组态
运维·前端·物联网·信息可视化·组态·组态软件