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方法传递过来的数据。

相关推荐
独泪了无痕14 分钟前
使用Fetch API 探索前后端数据交互
前端·http·交互设计
css趣多多21 分钟前
别名路径的知识点
前端
靓仔建2 小时前
Vue3导入组件出错does not provide an export named ‘user_setting‘ (at index.vue:180:10)
开发语言·前端·typescript
EnoYao2 小时前
我写了一个团队体检报告 Skill,把摸鱼的同事扒出来了😅
前端·javascript
梁正雄3 小时前
Python前端-2-css练习
前端·css·python
清汤饺子3 小时前
用 Cursor 半年了,效率还是没提升?是因为你没用对这 7 个功能
前端·后端·cursor
蓝莓味的口香糖3 小时前
【vue3】组件的批量全局注册
前端·javascript·vue.js
wefly20173 小时前
开发者效率神器!jsontop.cn一站式工具集,覆盖开发全流程高频需求
前端·后端·python·django·flask·前端开发工具·后端开发工具
独泪了无痕3 小时前
自动导入 AutoImport:告别手动引入依赖,优化Vue3开发体验
前端·vue.js·typescript
GDAL4 小时前
MANIFEST.in简介
linux·服务器·前端·python