专栏名称: 华为云开发者社区
目录
相关文章推荐
51好读  ›  专栏  ›  华为云开发者社区

Vue 组件间的传值五大场景,你造吗?

华为云开发者社区  · 掘金  ·  · 2021-07-29 12:06

正文

阅读 35

Vue 组件间的传值五大场景,你造吗?

摘要:组件是 vue.js 最强大的功能之一,这五个组件间传值场景你了解吗?

本文分享自华为云社区 《你了解Vue组件间传值五大场景吗?》 ,作者:北极光之夜。 。

父组件向子组件传值:

比如有一个 Father.vue 的父组件要传值给 Children.vue 的子组件,完成共需四步:

父组件 Father.vue 内容,注意里面的操作步骤:

<template>
  <div>
     <h2>父组件区域</h2>
    <hr />
    <!-- 第二步:在引用的子组件标签里定义 :num="num" , num就是要传递的变量-->
    <Children :num="num"></Children>
  </div>
</template>


<script>
// 引入子组件
import Children from "./Children.vue";
export default {
  data() {
    return {
      // 第一步:我们将要把变量 num 的值传给子组件Children
      num: 666,
    };
  },
  components: {
    Children,
  },
};
</script>
复制代码

子组件 Children.vue 内容,注意里面的操作步骤:

<template>
  <div>
    <h2>子组件区域</h2>
    <!-- 第四步:在子组件显示父组件传过来的值 -->
    <i>父组件传递过了的值:{{ num }}</i>
  </div>
</template>
<script>
export default {
  //第三步: 子组件可以通过定义的props就可以接收来自父组件的变量值 num
  props: ["num"],
  data() {
    return {};
  },
};
</script>
复制代码

运行效果:

Vue组件间的传值五大场景,你造吗?

子组件向父组件传值:

比如有一个 Children.vue 的子组件要传值给 Father.vue 的父组件,完成共需六步:

子组件 Children.vue 内容,注意里面的操作步骤:

<template>
  <div>
    <h2>子组件区域</h2>
    <!-- 第二步:得定义一个向父组件传值的方法,比如定义一个按钮,
    绑定一个点击事件,触发giveFather方法 -->
    <button @click="giveFather">giveFather</button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 第一步:我们将要把变量 word 的值传给父组件
      word: "北极光之夜。",
    };
  },
  methods: {
    // 第三:定义子组件向父组件传值的事件方法
    giveFather() {
      // 第四步:可以通过$emit传值给父组件,第一个参数为传值的方法,第二个参数为要传递的值
      this.$emit("giveFather", this.word);
    },
  },
};
</script>
复制代码

父组件 Father.vue 内容,注意里面的操作步骤:







请到「今天看啥」查看全文