uni-app如何页面传参数的几种方法总结


Posted in Javascript onApril 28, 2020

uni.$emit(eventName,OBJECT)

  • 触发全局的自定事件。附加参数都会传给监听器回调。
  • 其中eventName为事件名,OBJECT为触发事件附加参数

示例代码如下:

uni.$emit('update',{msg:'页面更新'})

uni.$on(eventName,callback)

  • 监听全局自定义事件,事件由uni.$emit()触发,回调函数会接收所有传入的数。
  • eventName为事件名,callback为事件的回调函数。

示例代码如下:

uni.$on('update',function(data){ console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg); })

作用
实际开发中对于触发页面的动态更新将非常有效。
例如移动端项目通过自己编写的组件替代tabbar进行tabar跳转,恰逢这时某个页面如微信支付成功,需要返回这个tabbar页面,你会发现他不会像普通uni页面(onshow生命周期)一样会动态刷新,这就很影响用户实际体验。因此这个方法就很有效,只需要在组件中写入uni.emit(update.masq:'页面刷新')然后在页面使用uni.on('update',function(data){ console.log('监听到事件来自 update ,携带参数 msg 为:' + data.msg); })接收,将函数写入即可。实际应用例子如下:

组件中:

onShow() {
switch (this.Tab){
case 'demo':
uni.$emit('update',{msg:'页面更新'});
break;
}

},

demo页面中:

created() {
uni.$on('update', (res) => {
this.list()
console.log(res, '更新');
})
},

测试最终结果:

针对于页面传参请直接使用Vue的全局变量更方便 ,因为uni-app框架的uni.$emit()和$on() 虽然使用了定时器能接收到参数,但是不知道为什么第一次总是接收不到导致很多为!后续有时间在慢慢研究为什么?但是使用Vue的全局变量能搞定一切!

如何使用uni.$emit()和uni.$on() 进行页面间通讯【有一个坑务必注意】

参考官方文档,然后记住一句话:

必须先跳转打开页面,才能发射参数,否则发射无效,接收页面无法接收

其次,如果遇到一次接收无效可能需要发送的时候增加一个定时器,不然接收$on的回调函数可能不执行

参考官方文档:https://ask.dcloud.net.cn/article/36010

uni-app如何页面传参数的几种方法总结

uni-app如何页面传参数的几种方法总结

<template>
  <view>
    <button @tap="click">
      点击发射
    </button>
 
  </view>
</template>
<script>
  import Vue from "vue";
  export default {
    methods: {
      click() {
        // 【非常重要】必须先跳转打开页面,才能发射参数,否则发射无效,接收页面无法接收
        Vue.prototype.$uniReLaunch("/pages/test/test001");
        uni.$emit("test", {
          test: "成功",
        });
        console.log("发射事件test成功");
      },
    },
  };
</script>
<template>
  <view></view>
</template>
<script>
  export default {
    onLoad() {
      uni.$on("test", (data) => {
        console.log("接收事件test成功,data=", data);
      });
    },
  };
</script>

到此这篇关于uni-app如何页面传参数的几种方法总结的文章就介绍到这了,更多相关uni-app 页面传参数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
List Installed Hot Fixes
Jun 12 Javascript
javascript实现的DES加密示例
Oct 30 Javascript
jQuery实现向下滑出的二级菜单效果实例
Aug 22 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
Sep 06 Javascript
JS中生成随机数的用法及相关函数
Jan 09 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
May 31 Javascript
vue兄弟组件传递数据的实例
Sep 06 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
React Hooks的深入理解与使用
Nov 12 Javascript
JS document form表单元素操作完整示例
Jan 13 Javascript
JavaScript 如何计算文本的行数的实现
Sep 14 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
Apr 28 #Javascript
JS 创建对象的模式实例小结
Apr 28 #Javascript
JavaScript console的使用方法实例分析
Apr 28 #Javascript
Node.js设置定时任务之node-schedule模块的使用详解
Apr 28 #Javascript
JavaScript Date对象功能与用法学习记录
Apr 28 #Javascript
JavaScript 链表定义与使用方法示例
Apr 28 #Javascript
Vue 3.0 全家桶抢先体验
Apr 28 #Javascript
You might like
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
Symfony2实现在doctrine中内置数据的方法
2016/02/05 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
javascript for循环从入门到偏门(效率优化+奇特用法)
2012/08/01 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
ajax+jQuery实现级联显示地址的方法
2015/05/06 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
移动端 Vue+Vant 的Uploader 实现上传、压缩、旋转图片功能
2019/06/10 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
[10:18]2018DOTA2国际邀请赛寻真——找回自信的TNCPredator
2018/08/13 DOTA
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
python小项目之五子棋游戏
2019/12/26 Python
Python垃圾回收机制三种实现方法
2020/04/27 Python
Python enumerate() 函数如何实现索引功能
2020/06/29 Python
最新pycharm安装教程
2020/11/18 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
Django实现简单的分页功能
2021/02/22 Python
介绍CSS3使用技巧5个
2009/04/02 HTML / CSS
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
公务员综合考察材料
2014/02/01 职场文书
新闻发布会主持词
2014/03/28 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
三提三创主题教育活动查摆整改措施
2014/10/25 职场文书
环保宣传语大全
2015/07/13 职场文书
Nginx内网单机反向代理的实现
2021/11/07 Servers
Windows和Linux上部署Golang并运行程序
2022/04/22 Servers