Vue2之父与子组件互相传参和方法调用

简介: 这篇文章介绍了Vue 2中父子组件之间互相传参和方法调用的四种方式:通过`ref`调用子组件方法、通过`props`调用父组件方法、父组件通过`:param`传参给子组件,以及子组件通过`emit`传参给父组件。

1、父组件通过ref调用子组件方法

父组件【index.vue】
<SearchTool ref="searchToolRef"/>

methods: {
   
    // ...

    /**
     * 刷新任务数据
     */
    reflashTaskTable() {
   
        // 父组件调用子组件【searchTool.vue】的onSubmit方法
        this.$refs['searchToolRef'].onSubmit()
    }
}

子组件【searchTool.vue】,别名为【searchToolRef】
methods: {
   
    // ...

    /**
     * 提交搜索框的表单数据,执行查询
     */
    onSubmit() {
   
        // ...
    }
}

2、子组件通过props调用父组件方法

父组件【index.vue】
<SearchTool :reflashTaskTable="reflashTaskTable"/>

methods: {
   
    // ...

    /**
     * 刷新任务数据
     */
    reflashTaskTable() {
   
        // ...
    },
}


子组件【searchTool.vue】,别名为【searchToolRef】
props: ["reflashTaskTable"]

methods: {
   
    // ...

    /**
     * 刷新任务数据句柄
     */
    handleReflashTaskTable() {
   
        // ...
        this.reflashTaskTable();
    },
}

3、父组件通过:param传参给子组件

父组件【index.vue】
 <SearchTool :levelList="levelList"/>

 data: () => ({
   
    levelList: ['Lv1', 'Lv2', 'Lv3', 'Lv4', 'Lv5']
 })

子组件【searchTool.vue】,别名为【searchToolRef】
props: ["levelList"]

watch: {
   
    levelList: function(newVal, oldVal) {
   
        console.log(newVal);
    }
}

4、子组件通过emit传参给父组件

子组件【searchTool.vue】,别名为【searchToolRef】
methods: {
   
    // ...

    /**
     * 删除任务
     */
    deleteTaskByIds() {
   
        // ...
        this.$emit("handleDeleteTaskByIds", "181191");
    }
}

父组件【index.vue】
<SearchTool @handleDeleteTaskByIds="handleDeleteTaskByIds"/>

methods: {
   
    // ...

    /**
     * 删除任务句柄
     */
    handleDeleteTaskByIds(val) {
   
        // ...
        console.log(val);// 181191
    },
}
目录
相关文章
uniapp 获取元素高度
uniapp 获取元素高度
971 0
|
关系型数据库 MySQL 数据库
Element el-date-picker 日期选择器详解
本文目录 1. 前言 2. 基本用法 3. 日期格式化 4. 选择其他日期单位 5. 选择多个日期 6. 带快捷选项 7. 禁用部分日期 8. 小结
7121 0
Element el-date-picker 日期选择器详解
|
JavaScript
Vue2中子组件调用父组件的方法,父组件调用子组件的方法,父子组件互相传值和方法调用
Vue2中子组件调用父组件的方法,父组件调用子组件的方法,父子组件互相传值和方法调用
Vue2中子组件调用父组件的方法,父组件调用子组件的方法,父子组件互相传值和方法调用
|
JavaScript
Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
Vue父组件调用子组件的方法并传参的两种方式(用$refs.refName.functionName、window.function)
|
开发框架 JavaScript 小程序
uni-app——如何阻止事件冒泡
uni-app——如何阻止事件冒泡
|
缓存 JavaScript Java
vue2知识点:组件的props属性、非props属性、props属性校验
vue2知识点:组件的props属性、非props属性、props属性校验
587 4
|
API
Vue3组件通信全解析:利用props、emit、provide/inject跨层级传递数据,expose与ref实现父子组件方法调用
Vue3组件通信全解析:利用props、emit、provide/inject跨层级传递数据,expose与ref实现父子组件方法调用
4788 0
|
JavaScript
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
vue中使用echarts绘制双Y轴图表时,刻度没有对齐的两种解决方法
4810 0
|
JavaScript API
vue3父子组件相互调用方法详解
vue3父子组件相互调用方法详解
10123 10
|
JavaScript 网络架构
vue 使用 this.$router.push 传参数,接参数的 query或params 两种方法示例
vue 使用 this.$router.push 传参数,接参数的 query或params 两种方法示例
3506 4