美文网首页
VUE组件之间多种通信方式

VUE组件之间多种通信方式

作者: 傻瓜也是瓜_ | 来源:发表于2017-10-27 09:48 被阅读61次

给大家介绍几种VUE组件之间通信的方式,根据业务场景大家可以自行选择。

1、通过$emit让子组件与父通信
/*
 @ 子组件 btn.vue
*/

<template>
    <button @click="trigger">{{text}}</button>
</template>
<script>
  module.exports = {
     data () {
          return {}
     },
     props: {
         text: {
            type: [String, Number],
            default: '确定'
         }
      },
    methods: {
       trigger () {
          //触发一个名字叫‘hello’的自定义事件, 并传递一个叫str的参数
          var str = 'hello word'
          this.$emit('hello', str)
       }
    }
  }
</script>
/*
监听自定义hello事件,并触发helloWord方法
*/
<template>
    <btn @hello="helloWord"></btn>
</template>
<script>
  import btn from 'btn.vue'
  module.exports = {
     data () {
          return {}
     },
    methods: {
       helloWord(str) {
            console.log(str)
        }
    },
    components: { btn }
  }
</script>
2、通过ref获取子组件实例(属性、方法)
/*
 @ 子组件 btn.vue
*/

<template>
    <button @click="trigger">{{text}}</button>
</template>
<script>
  module.exports = {
     data () {
          return {
              text: '确定'
          }
     },
    methods: {
       _init () {
          this.text = 'hello word'
       }
    }
  }
</script>
/*
通过ref与子组件通信
*/
<template>
    <btn ref="btn"></btn>
</template>
<script>
  import btn from 'btn.vue'
  module.exports = {
     data () {
          return {}
     },
     created () {
        //获取btn实例  
       var vueBtn =  this.$refs.btn
        
        //调用_init方法
        vueBtn._init()
    },
    components: { btn }
  }
</script>
2、通过一个空的VUE实例作为事件总代理,父与子、子与父、兄弟组件之间就可以通信了
/*
@ Event.js
*/
import Vue from 'vue'
export default new Vue()
/*
@ Event.js用法
*/
import Event from 'Event.js'

//事件监听
Event.$on('hello', (str)=> {
     console.log(str)
})

//事件触发
var str = 'hello, word'
Event.$emit('hello', str)

相关文章

  • VUE组件之间多种通信方式

    给大家介绍几种VUE组件之间通信的方式,根据业务场景大家可以自行选择。 1、通过$emit让子组件与父通信 2、通...

  • vue 新增属性 $attrs及$listeners (组件通信

    介绍:vue组件之间的通信方式有很多种,props/emit , event bus, vuex, provide...

  • vue组件之间通信

    vue 组件之间通信 vue组件之间通信方式: 1.父组件通过props向下传数据给子组件,子组件通过$emit事...

  • Vue相关知识点

    1、vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不...

  • vue Bus总线

    vue中我们经常遇到组件之间的通信,通常的通信方式有 父 → 子、子 → 父、兄弟组件 之间的通信。通常处理方式...

  • vue组件之间如何通信?vue通信的多种方式

    @TOC 前言: 写在前面: vue已经更新到V2.6.10版本(相信很快就会出3.0版本),相信我们也遇到了需要...

  • 干货博客集

    基础 webpack4.x 入门一篇足矣 react组件通信方式汇总 vue组件之间的通信 原生小程序组件通信 w...

  • 深度解析vue组件之间通信【8种方式】实例

    这篇文章主要介绍了vue组件之间通信方式,结合实例形式总结分析了vue.js的8种组件通信方式与相关操作注意事项,...

  • Vue 组件间通信

    背景 在使用 Vue 时,经常会有父子组件之间的通信需求,有很多种方法可以实现。 实现 父组件向子组件通信 方法一...

  • vue组件通信的多种方式

    vue组件通信有多种方式,最近看了一篇文章总结的很到位,所以自己也总结一下,以后工作会用到。 1.父到子通信pro...

网友评论

      本文标题:VUE组件之间多种通信方式

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