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实现动态侧边栏代码
Feb 19 Javascript
js实现跨域访问的三种方法
Dec 09 Javascript
Vue.js使用v-show和v-if的注意事项
Dec 13 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
Feb 06 Javascript
angular.js 路由及页面传参示例
Feb 24 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
Jun 12 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
Sep 30 Javascript
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
Vue切换div显示隐藏,多选,单选代码解析
Jul 14 Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 Javascript
jQuery实现简单轮播图效果
Dec 27 jQuery
使用react-virtualized实现图片动态高度长列表的问题
May 28 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/06 冲泡冲煮
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
PHP安装threads多线程扩展基础教程
2015/11/17 PHP
PHP内核探索之变量
2015/12/22 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
原生js实现类似弹窗抖动效果
2015/04/02 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
深入理解Angular4订阅(Subscribe)与取消
2017/11/22 Javascript
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
python之pandas用法大全
2018/03/13 Python
python tkinter实现界面切换的示例代码
2019/06/14 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
团队精神演讲稿
2013/12/31 职场文书
在校硕士自我鉴定
2014/01/23 职场文书
2014世界杯球队球队口号
2014/06/05 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
自主招生专家推荐信
2015/03/26 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python
oracle通过存储过程上传list保存功能
2021/05/12 Oracle