美文网首页
【Vue】父子、兄弟及不相干组件通信

【Vue】父子、兄弟及不相干组件通信

作者: 凉城十月 | 来源:发表于2020-11-25 13:55 被阅读0次

父子组件通信

父=>子

父(v-on:绑定事件):

<div id="app">
  <navbar mytitle="title" :myshow="false" :mytext="text"></navbar>
</div>

子(props接收):

<script>
export default {
  props:{
    myshow: {
      type: Boolean,
      default: false
    },
    mytext: String
//以上两种接收方式都可以
  },
  data(){
    return {}
  }
}
</script>
子=>父

子(this.$emit('fn',data)):

<template>
<button @click="submit"></button>
</template>
<script>
export default{
  data(){
    return {}
  },
  methods:{
    submit(){
      this.$emit('aaa', false);
    }
  }
}
</script>

父(@接收)

<template>
  <div id="app">  
    <mychild @aaa="handleEvent"></mychild>
  </div>
</template>
<script>
export default {
  data(){
    return {}
  },
  methods:{
    handleEvent(val){
      console.log(val)//false
    }
  }
}
</script>

兄弟组件通信

使用eventBus,事件总线机制。(此方式也可以用在两个不相干组件上)

  • $on 接收数据的那个组件
  • $emit 发送数据的那个组件

因为Vue实例的原型都在Vue.prototype上,因此我们可以将事件的中心绑定到Vue.prototype的某个属性上,称为bus

  1. 创建实例,导出实例
import Vue from "vue"
const Bus = new Vue()
export default Bus
  1. 传值的组件引入事件总线实例,发射事件
import Bus from 'bus.js'
Bus.$emit('something','我是传递的值')
  1. 接收的组件引入事件总线实例,接收事件
import Bus from 'bus.js'
Bus.$on('something',(res) => {
  console.log(res)  // ==> '我是传递的值'
})

不相干组件通信

1. 事件总线机制

具体操作请看兄弟组件通信部分

2. 使用provide/inject
  1. 要传值的组件provide
provide:{
  something:'我是传递的值'
}

如果要传递的时data里的值,要使用函数的形式return(同data)

data(){
  return{
    msg:'我是传递的值'
  }
},
provide(){
  return{
    something: this.msg
  }
}
  1. 接收值的组件通过inject接收
inject:{
  message:{
    from: 'something'
  }
},

mounted(){
  console.log(this.message) // ==> '我是传递的值'
}
3. 使用Vuex

其实vuex很简单,简单的理解来说就是一个数据管理框架,大家将数据都放到一个地方,由这个地方指定的命令来存储和读取数据。
具体使用可以看这篇博客 vuex基础

相关文章

  • Vue如何实现组件通信?

    Vue组件通信的三种情况: 父子通信 爷孙通信 兄弟通信 父子通信:父组件使用Prop向子组件传递数据,子组件通过...

  • 【Vue】父子、兄弟及不相干组件通信

    普通组件:父向子传值:v-bind属性绑定子向父传值:v-on事件绑定 自定义组件: 父组件向子组件传输数据[pr...

  • vue2中eventbus遇到的坑

    前言 vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过 props 向下传数...

  • Vue事件总线(EventBus)使用详细介绍

    前言 vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过 props 向下传数...

  • VUE - EventBus

    vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过 props 向下传数据给子...

  • Vue事件总线(EventBus)

    vue组件非常常见的有父子组件通信,兄弟组件通信。而父子组件通信就很简单,父组件会通过props向下传数据给子组件...

  • VUE03

    Vue组件 组件的创建 组件的指令以及事件绑定 父子组件创建 父子组件通信 兄弟组件的传值 动态组件

  • vue 组件通信方式 ,父子、隔代、兄弟 三类通信,六种方法

    Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面分别介绍每种通信方式且会说...

  • Vue组件通信

    总体来说,Vue中组件之间的通信场景如下图: 可以将其分为父子组件通信、兄弟组件通信、跨级组件通信。 1. 自定义...

  • Vue组件通信

    Vue组件通信 Vue组件关系可分为三大类: 父子组件 兄弟组件 跨级组件, 相应的组件之间的通信也分类三大类: ...

网友评论

      本文标题:【Vue】父子、兄弟及不相干组件通信

      本文链接:https://www.haomeiwen.com/subject/ikdrvktx.html