Vue中$emit的简单用法

Posted wwttc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue中$emit的简单用法相关的知识,希望对你有一定的参考价值。

通过$emit 实现实现父子组件间通信


我们先创建一个叫parent的组件和一个叫son的组件

<template>
  <div>
    {{city}}
    <br />-----------------------------
    <Son :city="city" @changeCity="changeCity" />
  </div>
</template>

<script>
import Son from "./son";//引入son组件
export default {
  data() {
    return {
      city: "北京"
    };
  },
  components: {
    Son//声明组件
  },
  methods: {
    changeCity(val) {
      this.city = val;
    }
  }
};
</script>

<style scoped>
div {
  color: blue;
}
span {
  color: black;
}
</style>

son组件如下

<template>
  <div>
    父组件传递的数据:{{city }}
    <br />
    这是子组件的数据:{{City}}
    <br />
    <el-button @click="changeCity">点击</el-button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      City: "昆明"
    };
  },
  props: {
    city: String
  },
  methods: {
    changeCity() {
      this.$emit("changeCity", this.City);
    }
  }
};
</script>

<style scoped>
div {
  color: black;
}
</style>

运行之后我们可以看到

北京
------------
这是父组件的数据:北京
这是子组件的数据:昆明
[点击]//这是一个按钮
我们点击按钮之后页面变为

昆明
-------------
这是父组件的数据:昆明
这是子组件的数据:昆明
[点击]

 

我的理解是$emit 绑定一个自定义事件event,当这个这个语句被执行到的时候,就会将参数arg传递给父组件

当按钮被点击时 子组件中的City传递给了父组件,并且使得父组件中city的值变为子组件的City的值






以上是关于Vue中$emit的简单用法的主要内容,如果未能解决你的问题,请参考以下文章

vue中 关于$emit的用法(父子组件传值)

Vue-$emit的用法

VUE中关于$emit的用法

Vue中事件总线$bus的用法及$on$off和$emit的使用

Vue中事件总线$bus的用法及$on$off和$emit的使用

Vue2 + ElementUI 关于$emit用法总结