关于vue.js:vue子组件向父组件传值

1.开发环境 vuecli3
2.电脑系统 windows10专业版
3.在应用 vue开发的过后中,咱们常常会遇到组件传值的问题,上面我来分享一下vue中子组件向父组件传值的办法,心愿对你有所帮忙。
4.废话不多说,间接上代码:

//父组件代码:
<template>
  <div>
    <p>我是父组件</p>
    <Chenperson1 :method="parentMethod"></Chenperson1>
  </div>
</template>

<script>
import Chenperson1 from "@/components/Chenperson1.vue";
export default {
  name: "ChenPerson",
  components: {
    Chenperson1,
  },
  data() {
    return {};
  },
  mounted() {},
  methods: {
    parentMethod(valueFromChild) {
      console.log('From the child:', valueFromChild);
    },
  },
};
</script>

<style>
</style>
//子组件代码:
<template>
  <div>
    <p>我是子组件一</p>
  </div>
</template>

<script>
export default {
  name: "Chenperson1",
  props: {
    method: { type: Function },
  },
  data() {
    return {
      chenvalue:"I am the child",
    };
  },
  mounted() {
    this.method(this.chenvalue);
  },
  methods: {
   ggg(){
    
   }
  },
};
</script>

<style>
</style>
成果如下:

5.尽管下面的办法解决了子组件向父组件传值的问题,只是这不是在Vue中的最佳形式。相同,事件更适宜解决这个问题。咱们能够应用事件来实现完全相同的事件。

// 父组件代码:
<template>
  <div>
    <p>我是父组件</p>
    <Chenperson1 @send-message="handleSendMessage"></Chenperson1>
    <button @click="gochild">去子组件一</button>
  </div>
</template>

<script>
import Chenperson1 from "@/components/Chenperson1.vue";
export default {
  name: "ChenPerson",
  components: {
    Chenperson1,
  },
  data() {
    return {};
  },
  mounted() {},
  methods: {
     handleSendMessage(event, value) {
      console.log('From the child:', event);
    },
    gochild() {
      this.$router.push({ name: "chenperson1" });
    },
  },
};
</script>

<style>
</style>
// 子组件代码:
<template>
  <div>
    <p>我是子组件一</p>
  </div>
</template>

<script>
export default {
  name: "Chenperson1",
  props: {
    method: { type: Function },
  },
  data() {
    return {
      chenvalue:"I am the child",
    };
  },
  mounted() {
    this.$emit('send-message', this.chenvalue);
  },
  methods: {
   ggg(){
    
   }
  },
};
</script>

<style>
</style>
成果如下:


6.本期的分享到了这里就完结啦,心愿对你有所帮忙,让咱们一起致力走向巅峰。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理