Vue 父组件主动获取子组件的值,子组件主动获取父组件的值

时间:2025-03-05 18:35:32

父组件主动获取子组件的值

1.

  在调用子组件的时候定义一个ref-> ref="header"
2.
  在父组件中通过this.$refs.header.属性,调用子组件的属性,例如this.$refs.header.name
  在父组件中通过this.$refs.header.方法,调用子组件的方法,例如this.$refs.header.test()

子组件主动获取父组件的值
1.
  在子组件中通过this.$parent.属性,调用父组件的属性,例如this.$parent.name
  在子组件中通过this.$parent.方法,调用父组件的方法,例如this.$parent.test()

示例代码

<template>
<div id="home">
<v-header ref="header"></v-header>
<h5>这是Home组件</h5>
<button @click="getChildData()">通过ref调用子组件的方法</button>
</div>
</template>
<script>
import Header from "./Header.vue";
export default {
data() {
return {
msg: "我是父组件的属性"
};
},
components: {
"v-header": Header
},
methods: {
run() {
alert('我是父组件属性与方法');
},
getChildData(){
console.log(this.$refs.header.msg);
this.$refs.header.run()
}
}
};
</script>
<style>
</style>
<template>
<div id="home">
<h2>这是Header组件</h2>
<button @click="getParentData()">调用父组件属性与方法</button>
</div>
</template>
<script>
export default {
data() {
return {
msg: "我是子组件的属性"
};
},
methods: {
run() {
alert("我是子组件的方法");
},
getParentData(){
console.log(this.$parent.msg)
this.$parent.run();
}
}
};
</script>
<style>
</style>