美文网首页
Vue之数据通信

Vue之数据通信

作者: darkTi | 来源:发表于2019-03-18 16:52 被阅读0次
  1. Vue 如何实现组件通信?
    ①父组件向子组件通信(props:['属性名']
  • 给父组件中的子组件标签绑定属性,然后在子组件里通过添加props:['属性名']传递数据;
//html
<div id="app" >
  <component-A name='hi'></component-A>
</div>
//JS
Vue.component('componentA',{
  props:['name'],
  template:`
  <div class="son">
    我的名字是{{name}}
  </div>
`
})//子组件一定要注册在父组件前面
new Vue({
  el:"#app",
}) 
结果1.png
②子组件向父组件传递数据($emit('事件名',data)
  • 通过发布订阅模式,子组件通过$emit('事件名',data)(data为需要传给父组件的数据)发布事件,父组件(父组件中的子组件标签)监听这个事件,并调用函数
<div id="app" >
  {{info}}
   <component-A name='hi' @change='changeMe'></component-A>
</div>
//JS
Vue.component('componentA',{
  props:['name'],
  template:`
  <div class="son">
    我的名字是{{name}}
    <button @click="$emit('change')">传递消息</button>
  </div>
`  
})
new Vue({
  el:"#app",
  data:{
    info:'暂无消息'
  },
  methods:{
    changeMe:function(){
      this.info = '收到'
    }
  }
})
点击前.png
点击后.png

③兄弟组件传递数据

  • let eventHub = new Vue()
    Vue.prototype.$eventHub = eventHub声明一个Vue实例,把它加到Vue的原型上,就可以通过$eventHub来调用$emit,$on
<div id="app">
  <component-a></component-a>
  <component-b></component-b>
</div>
let eventHub = new Vue()
Vue.prototype.$eventHub = eventHub
Vue.component('component-a',{
  template:`
  <div class="a">A
  <button @click='notify'>click</button>
  </div>
`,
  methods:{
    notify:function(){
      this.$eventHub.$emit('setB','hello')
    }
  }
})
Vue.component('component-b',{
  template:`
  <div class="b">B<div ref=change></div>
  </div>
`,
  created(){
    this.$eventHub.$on('setB',(data)=>{
      this.$refs.change.textContent = data
    })
  } 
})
new Vue({
  el:"#app"
})
点击后.png

④爷孙通信

  • 爷孙组件之间是不能直接通信的,但可以构造成两个父子组件,通过父组件来传递数据

相关文章

  • vue中组件通信方式

    学习 2019-6-19 vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之...

  • VUE中通信方式

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

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

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

  • Vue之数据通信

    Vue 如何实现组件通信?①父组件向子组件通信(props:['属性名']) 给父组件中的子组件标签绑定属性,然后...

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

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

  • vue中8种组件通信方式

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

  • 8种vue组件通信方式

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

  • Vue提问系列

    1、说下Vue数据双向绑定的原理2、说说Vuex的作用以及应用场景3、说说Vue组件的数据通信方式4、Vue的源码...

  • React redux 第二章 高级玩法

    数据状态交互 简介 对于Vue有内置的Vuex来进行数据通信机制,而相对于React有很多的数据通信机制工具。如f...

  • Vue中组件之间的通信方式?

    vue是组件化开发框架,所以对于Vue应用来说组件间的数据通信非常重要。 通信方式总结: props $emit/...

网友评论

      本文标题:Vue之数据通信

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