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

本文介绍Vue.js中父组件与子组件如何互相获取对方的数据及方法。通过实例演示了使用ref和this.$parent来实现跨组件的数据传递。

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

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>

 

转载于:https://www.cnblogs.com/chenyishi/p/9164285.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值