我是靠谱客的博主 踏实玉米,最近开发中收集的这篇文章主要介绍vue实现父子组件的互相传值及调用方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.父级组件调用子组件及传值

(1)命名
组件命名使用驼峰命名法,如addStudent
引用时,用短横线连接,如:

<add-student></add-student>

2、引用
将组件页面import进入当前页面,并在componens里注册组件

import addStudent from "./components/addStudent";
export default {
components: {
addStudent
},
}

3、传值
父组件通过横线连接的方法,将当前页面的值传给子组件
子组件通过驼峰命名法,获取值

//父组件
<add-student
:student-id="studentId"
></add-student>
data(){
return{
studentId:'001'
}
}

子组件:

//子组件
export default {
name: "addStudent",
props: {
studentId: {
type: String,
default: '',
}
},
}
//子组件输出为父组件传过来的值
console.log(this.studentId) //001

4、完整代码:

//父组件
<add-student
ref="studentDialog"
:is-show="showStudentDialog"
:student-id="studentId"
></add-student>
//js
import addStudent from "./components/addStudent";
export default {
components: {
addStudent
},
}
//子组件
export default {
name: "addStudent",
props: {
studentId: {
type: String,
default: '',
}
},
}

2、子组件返回值及调用父组件方法

1、返回值
子组件调用父组件的方法

this.$emit(父组件方法名,返回值)

<el-dialog
title="选择学生"
:visible.sync="isShow"
>
<el-table
:data="studentData.content"
@selection-change="handleSelectionChange"
ref="dataTable"
row-key="id"
>
...
</el-table>
</el-dialog>
export default {
data(){
stuSelection:[]
},
props: {
isShow: {
type: Boolean,
default: false,
},
}
methods: {
cofirmStudent(){
//stuSelection为选中的学生列表,返回选中的列表
this.$emit("selectStudent", this.stuSelection);
console.log(this.stuSelection) //[001,002]
},
closeDialog(){
//调用关闭父组件关闭当前弹窗的方法
this.$emit("closepop");
}
}
}

2、父组件命名方法
父组件用@xxx命名子组件可调用的方法

<add-student
ref="studentDialog"
:is-show="showStudentDialog"
@closepop="closepop"
@selectStudent="selectStudent"
></add-student>
//js
closepop() {
this.showStudentDialog = false;
},
selectStudent(selectStudent) {
console.log(selectStudent) //[001,002]
},

最后

以上就是踏实玉米为你收集整理的vue实现父子组件的互相传值及调用方法的全部内容,希望文章能够帮你解决vue实现父子组件的互相传值及调用方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部