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 相关文章推荐
jquery 事件执行检测代码
Dec 09 Javascript
动态添加option及createElement使用示例
Jan 26 Javascript
javascript制作坦克大战全纪录(2)
Nov 27 Javascript
JavaScript中的this关键字使用方法总结
Mar 13 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
微信小程序调用PHP后台接口 解析纯html文本
Jun 13 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
Jul 11 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
Jan 22 Javascript
微信小程序上传图片到php服务器的方法
May 23 Javascript
axios如何利用promise无痛刷新token的实现方法
Aug 27 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
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
PHP开发文件系统实例讲解
2006/10/09 PHP
PHP 编程的 5个良好习惯
2009/02/20 PHP
php Session存储到Redis的方法
2013/11/04 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
了解jQuery技巧来提高你的代码
2010/01/08 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
重写document.write实现无阻塞加载js广告(补充)
2014/12/12 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
JavaScript中数组的22种方法必学(推荐)
2016/07/20 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
2017/08/17 Javascript
浅谈Koa2框架利用CORS完成跨域ajax请求
2018/03/06 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
简单谈谈Python中的闭包
2016/11/30 Python
window下eclipse安装python插件教程
2017/04/24 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
校本教研工作方案
2014/01/14 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
元旦促销方案
2014/03/15 职场文书
投资公司董事长岗位职责
2015/04/16 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
OpenCV-Python实现轮廓拟合
2021/06/08 Python
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
各国货币符号大全
2022/02/17 杂记