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 相关文章推荐
写js时遇到的一些小问题
Dec 06 Javascript
juqery 学习之五 文档处理 插入
Feb 11 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
jQuery把表单元素变为json对象
Nov 06 Javascript
js动态添加表格数据使用insertRow和insertCell实现
May 22 Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 Javascript
理解Angular数据双向绑定
Jan 10 Javascript
AngularJS 依赖注入详解及示例代码
Aug 17 Javascript
Javascript 正则表达式校验数字的简单实例
Nov 02 Javascript
JS排序之冒泡排序详解
Apr 08 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
Vue.js组件通信之自定义事件详解
Oct 19 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
PHP下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
2014/05/10 PHP
php实现获取文章内容第一张图片的方法
2014/11/04 PHP
php实现短信发送代码
2015/07/05 PHP
php实现CSV文件导入和导出
2015/10/24 PHP
JQuery autocomplete 使用手册
2010/04/01 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
JavaScript实现的数字与字符串转换功能示例
2017/08/23 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
用Python输出一个杨辉三角的例子
2014/06/13 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python numpy数组中的复制知识解析
2020/02/03 Python
python实现手势识别的示例(入门)
2020/04/15 Python
Keras实现支持masking的Flatten层代码
2020/06/16 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
类的核心特性有哪些
2014/01/01 面试题
vue+django实现下载文件的示例
2021/03/24 Vue.js
网络管理员岗位职责
2015/02/12 职场文书
党内外群众意见范文
2015/06/02 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
python unittest单元测试的步骤分析
2021/08/02 Python