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活用事件触发对象动作
Aug 10 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
May 24 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
Jul 05 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
javascript每日必学之封装
Feb 23 Javascript
JavaScript中的继承之类继承
May 01 Javascript
微信小程序 动态绑定数据及动态事件处理
Mar 14 Javascript
angular实现spa单页面应用实例
Jul 10 Javascript
Angular自定义组件实现数据双向数据绑定的实例
Dec 11 Javascript
js解决软键盘遮挡输入框的问题分享
Dec 19 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 24 Javascript
javascript使用正则表达式实现注册登入校验
Sep 23 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字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
php简单的上传类分享
2016/05/15 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
JavaScript 学习笔记之变量及其作用域
2015/01/14 Javascript
JS的数组迭代方法
2015/02/05 Javascript
javascript控制台详解
2015/06/25 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
2018/05/16 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
python 控制语句
2011/11/03 Python
python修改操作系统时间的方法
2015/05/18 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
Python csv模块使用方法代码实例
2019/08/29 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
证婚人经典证婚词
2014/01/09 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python