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 相关文章推荐
phpwind放自动注册方法
Dec 02 Javascript
才发现的超链接js导致网页中GIF动画停止的解决方法
Nov 02 Javascript
关于js获取radio和select的属性并控制的代码
May 12 Javascript
js去除空格的12种实用方法
Nov 08 Javascript
JavaScript Math.ceil() 函数使用介绍
Dec 11 Javascript
jQuery插件StickUp实现网页导航置顶
Apr 12 Javascript
JS实现的二叉树算法完整实例
Apr 06 Javascript
微信小程序getPhoneNumber获取用户手机号
Sep 29 Javascript
微信小程序如何调用新闻接口实现列表循环
Jul 02 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
Apr 15 Javascript
关于Node.js中频繁修改代码重启服务器的问题
Oct 15 Javascript
正则表达式基础与常用验证表达式
Jun 16 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
编译问题
2006/10/09 PHP
MySQL授权问题总结
2007/05/06 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
PHP弱类型的安全问题详细总结
2016/09/25 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
JavaScript将数组转换成CSV格式的方法
2015/03/19 Javascript
jquery插件jSignature实现手动签名
2015/05/04 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
JS添加删除DIV的简单实例
2016/07/08 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
tensorflow 打印内存中的变量方法
2018/07/30 Python
Python global全局变量函数详解
2018/09/18 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
代码详解django中数据库设置
2019/01/28 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
机械专业应届生求职信
2013/09/21 职场文书
体育教师自我鉴定
2014/02/12 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
新闻专业毕业生求职信
2014/08/08 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
九年级历史教学反思
2016/02/19 职场文书
正确使用MySQL INSERT INTO语句
2021/05/26 MySQL
Mongodb 迁移数据块的流程介绍分析
2022/04/18 MongoDB