前言

  • 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-CompositionAPI传递数据
  • 那么了解完了uni-app-CompositionAPI传递数据之后,这篇文章来给大家介绍一下 uni-app-数据传递补充(也就是在补充一点内容给到大家)
  • 先主要介绍逆向传递数据,逆向传递数据除了使用事件通道之外,还可以通过 uni.$emit 的方式来进行传递数据,这种方式也是非常的简单
  • 先来简单的搭建一个演示环境,然后来进行介绍
  • 分别从 Vue2 与 Vue3 进行介绍

搭建演示环境

创建一个全新的项目(先来看 Vue2 版本的,所以在创建项目的时候选择 Vue2):

然后在配置一下,微信小程序的 AppId,直接去之前的项目中拷贝一下即可,找到之前项目的 manifest.json 文件,然后选择微信小程序配置,复制一下即可。

  • 经过如上的这么一顿操作之后,就可以搭建完毕运行环境,与编码环境
  • 接下来就可以开始进行介绍 uni-app-数据传递补充内容了

步入正题

emit(Vue2)

  • 项目创建好了,我们现在需要分别创建对应的页面,分别是 one 与 index 页面
  • 在 one 页面中创建一个按钮,点击按钮之后跳转到 index 页面,然后在 index 页面中创建一个按钮,点击按钮之后跳转到 one 页面
  • 在 one 返回按钮的函数中,通过 uni.$emit 的方式来传递数据,然后在 index 页面中通过 uni.$on 来接收数据
  • 在 index 页面中除了通过 uni.$on 来接收数据之外,还需要在 onUnload 生命周期函数中通过 uni.$off 来取消监听
  • 反正你要记住监听了方法那么就一定要取消监听,不然会造成内存泄漏的问题

one 页面:

<template>
<view>
<text>one页面</text>
<button type="primary" @click="onGoBackClick">返回到上一页</button>
</view>
</template> <script>
export default {
data() {
return {}
},
methods: {
onGoBackClick() {
uni.navigateBack({
delta: 1
}); // 通过 $emit 传递数据
uni.$emit("test", {
data: "通过$emit直接传递数据"
})
}
}
}
</script>

index 页面:

<template>
<view>
<button @click="onJumpOne">navigateTo</button>
</view>
</template> <script>
export default {
methods: {
onJumpOne() {
uni.navigateTo({
url: '/pages/one/one'
})
}
},
onLoad() {
uni.$on("test", (data) => {
console.log(data)
})
},
onUnload() {
uni.$off("test")
}
}
</script>
  • 经过如上的这么一番操作之后,我们就可以在控制台中看到我们传递的数据了

emit(Vue3)

  • 在 Vue3 中,其实写法大差不差的,只不过在 setup 函数中进行编写
  • 废话不多说,直接上代码

one 页面:

<template>
<view>
<text>one</text>
<text>=======================</text>
<button type="default" @click="onGoBackClick">返回上一个界面</button>
</view>
</template> <script setup>
function onGoBackClick() {
uni.navigateBack({
delta: 1
}); // 通过 $emit 传递数据
uni.$emit("test", {
data: "通过$emit直接传递数据"
})
}
</script>

index 页面:

<template>
<view>
<button type="primary" @click="onJumpOne">跳转到One界面</button>
</view>
</template> <script setup>
import {
onLoad,
onUnload
} from '@dcloudio/uni-app' function onJumpOne() {
uni.navigateTo({
url: '/pages/one/one'
})
} onLoad(() => {
uni.$on("test", (data) => {
console.log(data)
})
}) onUnload(() => {
uni.$off("test")
})
</script>

总结

顺着传递数据

  • 通过URL传递数据,然后通过 onLoad 生命周期函数中的 options 参数来接收数据
  • 通过 eventChannel.emit 事件通道传递数据,然后通过 eventChannel.on 来接收数据

逆向传递数据

  • 通过 uni.$emit 传递数据,然后通过 uni.$on 来接收数据(有一个注意点,就是 uni.$on 注册的事件一定要在页面卸载的时候通过 uni.$off 注销掉)
  • 通过 eventChannel.emit 事件通道传递数据,然后通过 events 参数来接收数据

End

  • 如果你有任何问题或建议,欢迎在下方留言,我会尽快回复
  • 如果你觉得本文对你有帮助,欢迎点赞、收藏,你的支持是我写作的最大动力

【UniApp】-uni-app-数据传递补充的更多相关文章

  1. 多个App间传递数据

    平台:Android两个App:A,B:需求:在A中点击一个按钮后,启动B并把数据从A传递到B: 代码: App A: MainActivity.java中添加: Button btn2 = (But ...

  2. 背水一战 Windows 10 (101) - 应用间通信: 通过协议打开指定的 app 并传递数据以及获取返回数据, 将本 app 沙盒内的文件共享给其他 app 使用

    [源码下载] 背水一战 Windows 10 (101) - 应用间通信: 通过协议打开指定的 app 并传递数据以及获取返回数据, 将本 app 沙盒内的文件共享给其他 app 使用 作者:weba ...

  3. 利用URL Scheme打开APP并传递数据

    https://blog.csdn.net/u013517637/article/details/55251421 利用外部链接打开APP并传递一些附带信息是现在很多APP都有的功能,我在这把这部分的 ...

  4. React中父子组件数据传递

    Vue.js中父子组件数据传递:Props Down ,  Events Up Angular中父子组件数据传递:Props Down,  Events  Up React中父子组件数据传递:Prop ...

  5. Android 在不同Actitity之间数据传递

    本文实现一个简易的人品计算器来实践在不同Actitity之间数据传递 intent的数据传递 从A界面打开B界面 把A界面的数据传递给B界面 1. intent.setData(uri) -- int ...

  6. 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)

    1.smartimageview使用 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&q ...

  7. iOS开发拓展篇—应用之间的跳转和数据传递

    iOS开发拓展篇—应用之间的跳转和数据传 说明:本文介绍app如何打开另一个app,并且传递数据. 一.简单说明 新建两个应用,分别为应用A和应用B. 实现要求:在appA的页面中点击对应的按钮,能够 ...

  8. 解析activity之间数据传递方法的详解

    转自:http://www.jb51.net/article/37227.htm 本篇文章是对activity之间数据传递的方法进行了详细的分析介绍,需要的朋友参考下     1  基于消息的通信机制 ...

  9. Vue 爬坑之路(二)—— 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

  10. Android图像数据传递到C++的一些坑

    最近在做一个Android图象识别的app, 通过相机预览或者是拍照功能获取图像数据,然后将图像数据传递到本地C++的图像识别so库.在这个过程中花的时间最多的就是数据传输问题.谨以此坑,警示未来!  ...

随机推荐

  1. 《CTFshow-Web入门》02. Web 11~20

    @ 目录 web11 题解 原理 web12 题解 web13 题解 web14 题解 web15 题解 web16 题解 原理 web17 题解 web18 题解 原理 web19 题解 web20 ...

  2. 遗传算法解决航路规划问题(MATLAB)

    遗传算法 文章部分图片和思路来自司守奎,孙兆亮<数学建模算法与应用>第二版 定义:遗传算法是一种基于自然选择原理和自然遗传机制的搜索(寻优)算法,模拟自然界中的声明进化机制,在人工系统中实 ...

  3. 图解Spark Graphx基于connectedComponents函数实现连通图底层原理

    原创/朱季谦 第一次写这么长的graphx源码解读,还是比较晦涩,有较多不足之处,争取改进. 一.连通图说明 连通图是指图中的任意两个顶点之间都存在路径相连而组成的一个子图. 用一个图来说明,例如,下 ...

  4. OA管理系统源码

    介绍 oa管理系统,只有基本功能,可进行二次开发 软件架构 技术框架:Spring+SpringMVC+Mybatis+BootStrap 数据库:MySQL 服务器:JDK7+Tomcat7 安装教 ...

  5. 文盘Rust——子命令提示,提高用户体验

    上次我们聊到 CLI 的领域交互模式.在领域交互模式中,可能存在多层次的子命令.在使用过程中如果全评记忆的话,命令少还好,多了真心记不住.频繁 --help 也是个很麻烦的事情.如果每次按 'tab' ...

  6. 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用

    在我们展示一些参考信息的时候,有所会用树形列表来展示结构信息,如对于有父子关系的多层级部门机构,以及一些常用如字典大类节点,也都可以利用树形列表的方式进行展示,本篇随笔介绍基于WPF的方式,使用Tre ...

  7. LDA主题模型讲解及代码Python实现

    目录 1. LDA主题模型详解 1.1 Beta/Dirichlet 分布的一个性质 1.2 LDA-math-MCMC 1.2.1 重要理解 1.3 Gibbs Sampling 2. 所需工具库 ...

  8. 贝塞尔曲线的切线及其AABB问题

    贝塞尔曲线的切线及其AABB问题 先聊点别的 2023 年抖音上居然还看到很多前端培训 各种直播前端教学(虽然是录播)但看起来还是有大批前往前端卷啊 说明了什么,很可能说明其它行业更难卷 这不是行业不 ...

  9. C++的extern关键字在HotSpot VM中的重要应用

    extern关键字有两个用处: (1)extern在C/C++语言中表示函数和全局变量作用范围(可见性)的关键字,这个关键字会告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用. (2)在C+ ...

  10. 程序员必备:使用AI工具通义千问,没有广告没有假链接,比搜索引擎要便捷多了,回答还算满意

    我提的问题是:使用Python连接Oracle,cx_Oracle和oracledb那个效率更高,功能更全,请列出他们的区别和实例代码 回复是: 以下是使用Python连接Oracle时,cx_Ora ...