当前位置: 首页 > news >正文

实战:子组件获取父组件订单信息

最佳实践建议

  1. 优先使用 props:适合父子组件直接通信,数据流向清晰
  2. 复杂场景用 eventBus:跨组件通信推荐使用 mitt 库
  3. 避免过度使用 $parent:会导致组件耦合度高,难以维护
  4. provide/inject 适用于跨层级:如主题配置、全局状态等
  5. 大型项目用 Pinia 或 Vuex:管理全局状态,适合复杂应用

根据你的业务场景选择合适的方式,保持组件间低耦合高内聚,提升代码可维护性。

下面使用第一种方式传递

实战:子组件获取父组件订单信息

以你的发货弹窗组件为例,获取父组件的订单ID:

父组件传递订单ID
<template><view class="order-detail"><button @click="showDeliveryPopup">显示发货弹窗</button><DeliveryPopup :orderId="order.id"@delivery-success="handleDelivery"/></view>
</template><script>
import DeliveryPopup from '@/components/DeliveryPopup.vue';export default {components: { DeliveryPopup },data() {return {order: {id: 20230607,amount: 299,status: '待发货'}}},methods: {showDeliveryPopup() {// 显示弹窗},handleDelivery(res) {// 处理发货成功逻辑uni.showToast({title: '发货成功',icon: 'success'});}}
}
</script>

子组件接收并使用订单ID
<template><view class="delivery-popup"><!-- 其他代码 --><text>订单ID: {{ orderId }}</text><button @click="handleSend">确认发货</button></view>
</template><script setup>
import { defineProps, defineEmits } from 'vue';// 定义 props 接收父组件订单ID
const props = defineProps({orderId: {type: Number,required: true}
});const emits = defineEmits(['delivery-success']);const handleSend = () => {// 使用父组件传递的 orderId 构建发货参数const params = {orderId: props.orderId,expressCompanyId: 1,logisticsNo: 'SF123456789'};// 调用发货接口// ...// 通知父组件发货成功emits('delivery-success', {orderId: props.orderId,status: '已发货',// 其他结果数据});
};
</script>

http://www.xdnf.cn/news/922213.html

相关文章:

  • 【学习笔记】如何给软件加数字签名
  • 在 Windows 11 或 10 上将 Git 升级到最新版本的方法
  • 【Linux】LInux下第一个程序:进度条
  • 十一、【ESP32开发全栈指南: TCP通信服务端】
  • 1-3 Linux-虚拟机(2025.6.7学习篇- mac版本)
  • Sentry 接口返回 Status Code 429 Too Many Requests
  • 【优选算法】C++滑动窗口
  • 在ubuntu等linux系统上申请https证书
  • Redis内存淘汰策略
  • redis集群
  • [最全总结]城市灾害应急管理系统
  • Linux虚拟化技术:从KVM到容器的轻量化革命
  • Nodejs工程化实践:构建高性能前后端交互系统
  • sqlsugar WhereIF条件的大于等于和等于查出来的坑
  • WSL文件如何上传到GitHub
  • python版若依框架开发:后端开发规范
  • 快捷键的记录
  • UOS无法安装deb软件包
  • [论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
  • AcWing--数据结构1
  • stm32—ADC和DAC
  • 《JavaAI:稳定、高效、跨平台的AI编程工具优势解析》
  • Linux下的fuser用法简析
  • 文件(保存)通讯录
  • 长跑赛接力赛模式
  • C++ -- 多态
  • 《高等数学》(同济大学·第7版)第二章第五节“函数微分“
  • SpringBoot+Mysql校园跑腿服务平台系统源码
  • Doris 与 Elasticsearch:谁更适合你的数据分析需求?
  • 游戏常用运行库合集 | GRLPackage 游戏运行库!