子传父的3种方式

1.Props传

通过Pros将父亲的methods方法传给子,子用 click来接收这个方法。

A(父)

<template>
  <div>
    <B :cutPrice="cutPrice"></B>
  </div>
</template>
<script>
import B from "./B.vue";
export default {
  data() {
    return {};
  },
  activated() {},
  watch: {},
  created() {},
  mounted() {},
  methods: {
    cutPrice(name){
        console.log(name);
    }
  },
  components: {B},
};
</script>
<style>
</style>

B(子)

<template>
    <div>
        <button @click="cutPrice(1)"></button>
    </div>
</template>
<script>
export default {
    props:["cutPrice"],
   data() {
      return {
      }
   },
   activated() {
   },
 watch: {
},
created(){
},
mounted(){
},
methods:{
}


}
</script>
<style>
</style>

2.官方$emit

A(父)  自定义一个事件,在子中去触发

<template>
  <div>
    <B  @updatePrice="cutPrice"></B>
  </div>
</template>
<script>
import B from "./B.vue";
export default {
  data() {
    return {};
  },
  activated() {},
  watch: {},
  created() {},
  mounted() {},
  methods: {
    cutPrice(name) {
      console.log(name);
    },
  },
  components: { B },
};
</script>
<style>
</style>

子(B)

<template>
  <div>
    <button @click="xx">123</button>
  </div>
</template>
<script>
export default {
 
  data() {
    return {};
  },
  activated() {},
  watch: {},
  created() {},
  mounted() {},
  methods: {
    xx(){
        this.$emit("updatePrice",11)
    }
  },
};
</script>
<style>
</style>

3.通过在子$parent调用父亲A中的属性

A(父亲)

<template>
  <div>
    <B></B>
  </div>
</template>
<script>
import B from "./B.vue";
export default {
  data() {
    return {};
  },
  activated() {},
  watch: {},
  created() {},
  mounted() {},
  methods: {
    cutPrice(name) {
      console.log(name);
    },
  },
  components: { B },
};
</script>
<style>
</style>

B(子)

<template>
  <div>
    <button @click="xx">123</button>
  </div>
</template>
<script>
export default {
 
  data() {
    return {};
  },
  activated() {},
  watch: {},
  created() {},
  mounted() {},
  methods: {
    xx(){
        // this.$emit("updatePrice",11)
        // console.log(this.$parent);
        this.$parent.cutPrice(22)
    }
  },
};
</script>
<style>
</style>

 

posted @ 2022-07-27 11:14  ajaXJson  阅读(2482)  评论(0)    收藏  举报