Vue 父组件向子组件传值,传方法,传父组件整体

父子组件传值

  1.父组件调用子组件时绑定属性,例如-> :title="title"
  2.子组件中在props中声明title:props:['title','msg']
  3.就可以在子组件中引用title
  Tips:避免父子组件传值时命名冲突

父子组件传方法方式一样
  1.父组件调用子组件时绑定属性,例如-> :run="run"
  2.子组件中props中声明run:props:['title','msg','run']
  3.子组件中的button引用run方法
  Tips:可将子组件的值,通过父组件的方法,传给父组件

可将父组件传给子组件
  1.父组件调用子组件时绑定属性,例如-> :home="this"
  2.子组件中props中声明home:props:['title','msg','run','home']
  3.可在子组件方法中调用home组件的属性与方法:this.home.run() this.home.title

子组件中可以可在props验证父组件传过来的值的类型。
props:{
title:String
}

示例代码:

<template>
<div id="home">
    <v-header :title='title' :run='run' :home='this'></v-header>
    <h5>这是Home组件</h5>
</div>
</template>
<script>
import Header from "./Header.vue";
export default {
  data() {
    return {
      msg: "123",
      title: 12333
    };
  },
  components: {
    "v-header": Header
  },
  methods: {
    run(da) {
      alert(da);
    }
  }
};
</script>
<style>
</style>
<template>
<div id="home">
    <h2>这是Header组件</h2>
    {{title}}
    <button @click="run('123')">我来执行父组件传递过来的值</button>
    <button @click="getParent()">我来获取传递过来的父组件</button>
</div>
</template>
<script>
export default {
  data() {
    return {
      msg: "123"
    };
  },
  methods: {
    getParent() {
      console.log(this.home);
      console.log(this.home.title);
    }
  },
  props: ["title", "run", "home"]
};
</script>
<style>
</style>

猜你喜欢

转载自www.cnblogs.com/chenyishi/p/9164225.html