uni-app中,实现页面之间传参

本文讲述了在uni-app开发中,如何处理从列表页面到新增页面操作后返回时的数据更新问题,以及列表页面与新增页面之间的通信机制,通过`uni.$emit`和`uni.$on`实现数据的刷新和控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景:

        前提条件:当我们从一个列表页面,进入新增页面,

        情况1:在新增页面,信息添加成功后,返回列表页面,此时,需要更新列表数据;

        情况2:在新增页面,没有添加信息,直接返回列表页面,此时,不需要更新列表数据

针对以上情况,具体实现如下:

列表页面A,代码内容如下:
import { onShow } from '@dcloudio/uni-app'

onShow(() => {
  // 当从添加页面返回时,如果有数据更新,则需要刷新列表
  uni.$on('update', (e: boolean) => {
    // 为true时,表示需要更新数据
    if (e) {
      page.value = 1
      total.value = 0
      getList()
    }
  })
})

添加页面B,代码内容如下:

// 确认添加信息
const confirmSubmit = async () => {
  try {
    btnLoading.value = true
    // 执行对应接口
    await interfaceName(params)
    // 添加成功时,返回列表页面,需要重新刷新数据
    uni.$emit('update', true)
    // 添加成功之后,才返回列表页面
    uni.navigateBack()
  } catch (e) {
    console.log(e)
  } finally {
    btnLoading.value = false
  }
}

注意: 页面之间传参,通过uni.$emit('update', params)与uni.$on('update', (e: boolean) => {})实现

大家如有其他更好的方法,欢迎大家留言评论。如果有错误的地方,也请大家及时指出,非常感谢!

uni-app中,封装API通常涉及定义一个函数来处理网络请求,这个函数会接收参数,并在请求完成后返回数据。以下是一个简单的封装示例,以及如何传参和处理返回数据: 1. 首先,你需要使用uni-app提供的网络请求API,比如`uni.request`。你可以创建一个单独的JavaScript文件来存放你的API封装逻辑,例如`api.js`。 2. 在这个文件中,定义一个函数,比如`callApi`,它接收必要的参数,并返回一个Promise对象,该对象将在网络请求完成后被解决或拒绝。 ```javascript // api.js export function callApi(params) { return new Promise((resolve, reject) => { uni.request({ url: '你的后端API地址', // 例如 'https://api.example.com/data' method: 'GET', // 或者 'POST', 'PUT', 'DELETE' 等 data: params, success: (res) => { if (res.statusCode == 200) { // 这里可以根据实际返回的JSON结构进行解析 resolve(res.data); } else { // 可以定义一些错误码来处理不同情况的错误 reject('请求失败'); } }, fail: (err) => { reject('请求错误'); } }); }); } ``` 3. 使用封装的`callApi`函数时,你可以传递一个对象作为参数,这个对象包含API所需的数据。 ```javascript // 在某个页面或者组件中 import { callApi } from './api.js'; export default { data() { return { // 你的数据对象 }; }, methods: { fetchData() { // 假设我们需要传递参数给API const params = { key1: 'value1', key2: 'value2' }; callApi(params).then((response) => { // 处理返回的数据 console.log(response); }).catch((error) => { // 错误处理 console.error(error); }); } } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值