Vue 组件事件触发另一个组件的事件

此方法与Prop类似,区别在于Prop用于子父之间传值,而当前所介绍的方法为任意组件可相互调用定义的属性。

我用此方法需要解决的问题是当我点击一个按钮,需要改变另一个组件的样式,因为我做的是主题切换,很多样式是不能放在一起的。实现就是需要将点击按钮时的一个判断值传入另一个组件,调用方法通过判断值改变样式。具体实现为:

1.定义一个公共的js

import Vue from 'vue'
export default new Vue()

2.在两个组件中都引入此js

import PublicFunction from '../../publicFunction'

3.定义按钮方法

show = true

beta() {
  PublicFunction.$emit('demo', this.show)
  this.show = !this.show
}

我设置了一个点击事件,点击时触发beta函数,并将方法写入引入的js,传入的参数就是show

4.调用方法

beta(show) {
  if (show) {
     this.defaultBackgroudColor = 'rgb(184,183,183)'
  } else {
     this.defaultBackgroudColor = 'rgb(247,247,247)'
  }
 }

 mounted() {
    PublicFuncti
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值