vue3子父组件之间的调用

子组件:

复制代码
capacityIndex.vue

父组件:

index.vue

A.子组件获取父组件属性

1.在父组件中引用子组件

复制代码
import capacityIndex from "./capacityIndex";
复制代码
<capacityIndex :tankInfo="tankInfo" :deviceNameInfo="deviceNameInfo" ref="sonMethodRef"></capacityIndex>

其中tankInfo和device Name Info为子组件需要的属性

2.子组件接收父组件传递的属性

复制代码
const props = defineProps({
  // 油罐编号
  tankInfo: {
    type: String,
    default: ""
  },
  // 液位仪编号
  deviceNameInfo: {
    type: String,
    default: ""
  },
})

3.子组件调用属性

复制代码
/** 查询罐容信息列表 */
function getList() {
  loading.value = true;
  queryParams.value.tankId = props.tankInfo;
  queryParams.value.deviceName = props.deviceNameInfo;
  listTankCapacity(queryParams.value).then(response => {
    tankCapacityList.value = response.rows;
    total.value = response.total;
    loading.value = false;
  });
}

其中props.tankInfo就是调用了传递过来的参数。

B.父组件调用子组件方法

1.父组件调用子组件时定义ref为sonMethodRef

复制代码
<capacityIndex :tankInfo="tankInfo" :deviceNameInfo="deviceNameInfo" ref="sonMethodRef"></capacityIndex>

2.在父组件中定义ref

复制代码
const sonMethodRef = ref(null)

3.父组件调用子组件暴漏的方法

复制代码
function capaCityInfo(row){
  capaCityTitle.value = "罐容信息";
  capaCityOpen.value = true;
  tankInfo.value = row.id;
  deviceNameInfo.value = row.deviceName;
  nextTick(() => {
    sonMethodRef.value.getList();
  })
}

其中

复制代码
nextTick(() => {
  sonMethodRef.value.getList();
}) 就是调用的过程。

4.子组件暴漏父组件需要的方法,getList互相对应。

复制代码
defineExpose({
  getList
})
function getList() {
  loading.value = true;
  queryParams.value.tankId = props.tankInfo;
  queryParams.value.deviceName = props.deviceNameInfo;
  listTankCapacity(queryParams.value).then(response => {
    tankCapacityList.value = response.rows;
    total.value = response.total;
    loading.value = false;
  });
}
相关推荐
EndingCoder8 分钟前
枚举类型:常量集合的优雅管理
前端·javascript·typescript
Electrolux28 分钟前
[wllama]纯前端实现大语言模型调用:在浏览器里跑 AI 是什么体验。以调用腾讯 HY-MT1.5 混元翻译模型为例
前端·aigc·ai编程
sanra12331 分钟前
前端定位相关技巧
前端·vue
起名时在学Aiifox34 分钟前
从零实现前端数据格式化工具:以船员经验数据展示为例
前端·vue.js·typescript·es6
oMcLin1 小时前
如何在Manjaro Linux上配置并优化Caddy Web服务器,确保高并发流量下的稳定性与安全性?
linux·服务器·前端
码途潇潇1 小时前
JavaScript 中 ==、===、Object.is 以及 null、undefined、undeclared 的区别
前端·javascript
之恒君1 小时前
Node.js 模块加载 - 4 - CJS 和 ESM 互操作避坑清单
前端·node.js
be or not to be1 小时前
CSS 背景(background)系列属性
前端·css·css3
前端snow1 小时前
在手机端做个滚动效果
前端
webkubor1 小时前
🧠 2025:AI 写代码越来越强,但我的项目返工却更多了
前端·机器学习·ai编程