vue组件之间数据通信操作

作者: AkiraSun | 来源:发表于2017-08-08 22:11 被阅读175次
image.png
  • 父组件通知子组件
    父组件向子组件传递数据可以通过props
    props 可以是数组或对象,用于接收来自父组件的数据。props 可以是简单的数组,或者使用对象作为替代,对象允许配置高级选项,如类型检测、自定义校验和设置默认值
<template>
  <div class="index">
    <!-- 父组件 -->
    <IndexHead  v-bind:banner-info="bannerList"></IndexHead>
  </div>
</template>
<template>
  <div class="indexhead">
      <!-- 子组件 -->
      <div  v-if="bannerInfo" v-for="banner in bannerInfo" >
      </div>
  </div>
</template>
<script>
export default {
  name: 'IndexHead',
  props:['bannerInfo'],
  data () {
      return {
        myswiper:''"
      }
    }
}
</script>
  • 子组件通知父组件
    简单来说通过$emit触发实例的事件,将数据传给监听器回调
 <!-- 父组件 -->
<template>
  <component-a  v-on:child-say="listenMe"></component-a>
  <p>Do you like me? {{childWords}}</p>
</template>
 methods: {
            listenMe: function (somedata){
              this.childWords = somedata
            }
 }
 <!-- 子组件 -->
<button v-on:click="onClickMe">like!</button>

methods: {
      onClickMe: function(){
        this.$emit('child-say',this.somedata);
      }
    }
  • 非父子组件通信
    在vue官网上介绍了非父子组件通信的方法 ,用过bus来承载数据
    在简单的场景下可以使用一个空的vue实例作为中央事件总线
    中央事件总线
// 根组件(this.$root)
new Vue({
  el: '#app',
  router,
  render: h => h(App),
  data: {
   // 空的实例放到根组件下,所有的子组件都能调用
    Bus: new Vue()
  }
})

以下两个组件为兄弟组件,

<button @click="submit">提交<button>

methods: {
   submit() {
     // 事件名字自定义,用不同的名字区别事件
      this.$root.Bus.$emit('eventName', 123)
    }
 }
// 当前实例创建完成就监听这个事件
  created(){
    this.$root.Bus.$on('eventName', value => {
      this.print(value)
    })
  },

  methods: {
    print(value) {
      console.log(value)
    }
  },

  // 在组件销毁时别忘了解除事件绑定
  beforeDestroy() {
     this.$root.Bus.$off('eventName')
  }

相关文章

  • VUE中通信方式

    vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? ...

  • Vue中组件之间8种通信方式,值得收藏

    vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? ...

  • vue组件间的多种通信方式

    vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢?首...

  • vue中8种组件通信方式

    vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢?首...

  • 8种vue组件通信方式

    vue是数据驱动视图更新的框架,所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 首...

  • vue组件之间数据通信操作

    父组件通知子组件父组件向子组件传递数据可以通过propsprops 可以是数组或对象,用于接收来自父组件的数据。p...

  • vue中8种组件通信方式

    原文地址 vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通...

  • vue2.0组件间传值详解

    作为一个vue初学者,组件间的数据通信是我们不得不谈的一个重要内容。根据组件之间的关系通信方式也有不同,数据通信大...

  • VUE组件间通信

    vue是数据驱动视图更新的框架,所以对于vue来说组件间的数据通信非常重要。组件是vue的强大功能之一,而组件间的...

  • React 笔记摘要

    父子组件数据通信 父子组件之间的数据通信细分其实还有两种:父与子之间和子与父之间。 在React中,父与子之间的数...

网友评论

    本文标题:vue组件之间数据通信操作

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