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 相关文章推荐
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
浅谈javascript中的作用域
Apr 07 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
JS和JQUERY获取页面大小,滚动条位置,元素位置(示例代码)
Dec 14 Javascript
jQuery中closest和parents的区别分析
May 07 Javascript
JavaScript必知必会(二) null 和undefined
Jun 08 Javascript
15个非常实用的JavaScript代码片段
Dec 18 Javascript
微信小程序-拍照或选择图片并上传文件
Jan 06 Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
May 05 Javascript
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 jQuery
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
Codeigniter框架实现获取分页数据和总条数的方法
2014/12/05 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
js 与或运算符 || &amp;&amp; 妙用
2009/12/09 Javascript
javascript 二分法(数组array)
2010/04/24 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
jQuery的三种bind/One/Live/On事件绑定使用方法
2017/02/23 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
p5.js实现故宫橘猫赏秋图动画
2019/10/23 Javascript
学习python 之编写简单乘法运算题
2016/02/27 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
详解rem 适配布局
2018/10/31 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
家长评语大全
2014/01/22 职场文书
计算机应届毕业生自荐信范文
2014/02/23 职场文书
毕业生求职信范文
2014/06/29 职场文书
小学班主任个人总结
2015/03/03 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Python学习之时间包使用教程详解
2022/03/21 Python