网络编程
位置:首页>> 网络编程>> JavaScript>> vue2.0 中#$emit,$on的使用详解

vue2.0 中#$emit,$on的使用详解

作者:m0_37068028  发布时间:2023-07-02 16:52:27 

标签:vue2.0,on,emit

vue1.0中 vm.$dispatch 和 vm.$broadcast 被弃用,改用$emit,$on


vm.$on( event, callback )

监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。


vm.$emit( event, […args] )

触发当前实例上的事件。附加参数都会传给 * 回调。

例子:


//父组件
<template>
 <ratingselect @select-type="onSelectType"></ratingselect>
</template>
<script>
 data () {
  return {
   selectType: 0,
 },
 methods: {
  onSelectType (type) {
   this.selectType = type
  }
 }
</script>

父组件使用@select-type="onSelectType"@就是v-on的简写,监听由子组件vm.$emit触发的事件,通过onSelectType()接受从子组件传递过来的数据,通知父组件数据改变了。


// 子组件
<template>
<div>
 <span @click="select(0, $event)" :class="{'active': selectType===0}"></span>
 <span @click="select(1, $event)" :class="{'active': selectType===1}"></span>
 <span @click="select(2, $event)" :class="{'active': selectType===2}"></span>
</div>
</template>
<script>
 data () {
  return {
   selectType: 0,
 },
 methods: {
   select (type, event) {
     this.selectType = type
     this.$emit('select-type', type)
  }
 }
</script>

子组件通过$emit来触发事件,将参数传递出去。

以上所述是小编给大家介绍的vue2.0 中#$emit,$on的使用详解网站的支持!

来源:http://blog.csdn.net/m0_37068028/article/details/72898119

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com