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作者John Resig自己封装的javascript 常用函数
Nov 09 Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
Sep 01 Javascript
JavaScript导出Excel实例详解
Nov 25 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
javascript实现模拟时钟的方法
May 13 Javascript
Javascript字符串常用方法详解
Jul 21 Javascript
Javascript 实现简单计算器实例代码
Oct 23 Javascript
微信小程序 本地存储及登录页面处理实例详解
Jan 11 Javascript
jquery实现限制textarea输入字数的方法
Sep 06 jQuery
vue中如何使用ztree
Feb 06 Javascript
Javascript地址引用代码实例解析
Feb 25 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
php基础知识:类与对象(2) 自动加载对象
2006/12/13 PHP
php URL编码解码函数代码
2009/03/10 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
php实现的http请求封装示例
2016/11/08 PHP
Lumen timezone 时区设置方法(慢了8个小时)
2018/01/20 PHP
js 操作select相关方法函数
2009/12/06 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
详解nodejs 文本操作模块-fs模块(三)
2016/12/22 NodeJs
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
jQuery鼠标悬停内容动画切换效果
2017/04/27 jQuery
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
JQuery 获取多个select标签option的text内容(实例)
2017/09/07 jQuery
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
详解Python中的array数组模块相关使用
2016/07/05 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python线性回归实战分析
2018/02/01 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python爬虫 爬取58同城上所有城市的租房信息详解
2019/07/30 Python
django echarts饼图数据动态加载的实例
2019/08/12 Python
加拿大的标志性百货公司:Hudson’s Bay(哈得逊湾)
2019/09/03 全球购物
实习教师自我鉴定
2013/12/12 职场文书
物流管理专业职业生涯规划书
2014/01/06 职场文书
自考生自我评价分享
2014/01/18 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
工程部部长岗位职责
2015/02/12 职场文书
员工规章制度范本
2015/08/07 职场文书
交通安全教育主题班会
2015/08/12 职场文书
2019年第四季度财务部门工作计划
2019/11/02 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL