Vue3+Ant Design 父组件调用子组件方法

父组件代码

<template>
    <search-module-date ref="rangeDateRef" :option="rangeDateOption" @callBackFun="onRangeChange" />
    <a-button type="default" @click="reset">重置</a-button>
</template>

<script>
import {getSearchDate} from "@views/financeReview/js/config";
import RangeDate from "@components/RangeDate/Child";
import { getSearchDate } from './js/config'
import {ref} from "vue";
import moment from "moment/moment";
export default {
    name: "Parent",
    components: {
       RangeDate
    },
    setup() {
        const rangeDateRef = ref(null)
        const rangeDateOption = getSearchDate()

        /** 时间选择事件 */
        const onRangeChange = (value) => {
            // 开始时间
            console.log(moment(value[0]).format('YYYY-MM-DD HH:mm:ss'))
            // 结束时间
            console.log(moment(value[1]).format('YYYY-MM-DD HH:mm:ss'))
        }

        /** 重置 */
        const reset = () => {
            // 调用子组件方法,清空已选时间。rangeDateRef对应子组件ref的值
            rangeDateRef.value.clearInput()
        }
        return {
            reset,
            rangeDateRef,
            onRangeChange,
            rangeDateOption
        }
    }
}
</script>
<style scoped>
</style>

此处的 rangeDateRef.value.clearInput() 即通过父组件调用子组件的代码实现。其中,rangeDateRef 代表子组件本体,与标签中的 ref="rangeDateRef" 对应。

子组件代码

<template>
    <span> 时间 :</span>
    <a-range-picker ref="range-picker" v-model:value="dateValues"
                    @change="onChange" format="YYYY-MM-DD HH:mm:ss" />
</template>
<script>
import {ref} from "vue";
export default {
    name: "Child",
    components: {},
    props: {
        option: {
            type: Object,
            defalut: () => { }
        }
    },
    setup(props, { emit }) {
        const dateValues = ref([])
        // 选择事件,调用父组件方法
        const onChange = (data) => {
            // callBackFun对应父组件的callBackFun方法
            emit('callBackFun', data)
        }

        // 清空选择框内容
        const clearInput = () => {
            dateValues.value = []
        }

        return {
            onChange,
            clearInput,
            dateValues
        }
    }
}
</script>
<style scoped>
</style>

代码中 emit('callBackFun', data) 是子组件调用父组件的代码实现,callBackFun 对应父组件指定的实际方法。

相关推荐

  1. Vue3+Ant Design 组件调用组件方法

    2024-04-23 22:10:05       14 阅读
  2. vue3组件调用组件方法

    2024-04-23 22:10:05       14 阅读
  3. Vue3 /组件相互调用

    2024-04-23 22:10:05       18 阅读
  4. vue组件调用组件方法

    2024-04-23 22:10:05       34 阅读
  5. Vue.js 中组件调用组件方法

    2024-04-23 22:10:05       35 阅读
  6. Vue3中,组件调用组件中的方法

    2024-04-23 22:10:05       32 阅读
  7. 组件调用组件方法

    2024-04-23 22:10:05       43 阅读
  8. flutter 组件调用组件方法

    2024-04-23 22:10:05       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 22:10:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 22:10:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 22:10:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 22:10:05       20 阅读

热门阅读

  1. 基于深度神经网络的图像识别技术研究

    2024-04-23 22:10:05       13 阅读
  2. vue-router学习4:嵌套路由

    2024-04-23 22:10:05       12 阅读
  3. nginx配置不同设备访问不同地址

    2024-04-23 22:10:05       16 阅读
  4. Cesium简单案例

    2024-04-23 22:10:05       13 阅读
  5. net模块

    net模块

    2024-04-23 22:10:05      12 阅读
  6. MySQL 基础语法(3)

    2024-04-23 22:10:05       12 阅读