vue组件之间的通信

vue组件间的通信有父--->子、子--->父、非父子之间的通信
虽然我们稍微复杂的项目都用vuex来管理了,但是还是想写一篇关于有父--->子、子--->父、非父子
之间通信的文章。下面通过代码来讲述

父--->子组件间的通信

父级页面:
<template>
<div id="app">
<Header :parentMsg=‘parentMsg‘ >
</Header>
</div>
</template>
import Header from ‘./components/header‘
export default {
name: ‘App‘,
data () {
return {
parentMsg: ‘你访问的是父级页面的数据‘,
}
},
components:{
Header,
}
}
子页面:
<template>
<div>
<div >{{parentMsg}}</div>
</div>
</template>
export default {
name: ‘Header‘,
props:[‘parentMsg‘], //接收父级页面传过来的数据
data(){
return {
parentMsg:‘‘
}
}
}

子--->父组件间的通信
父级页面:
<template>
<div id="app">
<Header :parentMsg=‘parentMsg‘ @tanster=‘getuser‘>

</Header>
<p>
父级页面接收子页面的数据:{{user}}
</p>
</div>
</template>
<script>
import Header from ‘./components/header‘
export default {
name: ‘App‘,
data () {
return {
parentMsg: ‘你访问的是父级页面的数据‘,
user:‘‘
}
},
components:{
Header,
},
methods:{
getuser(msg){
this.user=msg //接收子页面传过来的数据
}
}
}
</script>
子页面:
<template>
<div>
<div >{{parentMsg}}</div>
<p>header页面{{msg}}</p>
<input v-model="msg" @change=getuser()>
</div>
</template>
<script>
export default {
name: ‘Header‘,
props:[‘parentMsg‘],
data(){
return {
msg:‘‘
}
},
methods:{
getuser(){
// 传给父组件
this.$emit(‘tanster‘,this.msg) //传给父级页面
},
}
}
</script>

非父子组件页面间的通信,可以使用EventBus
使用EventBus首先需要新建一个EventBus.js,代码如下:
import Vue from ‘vue‘
export default new Vue()
// import Vue from ‘vue‘
// const EventBus = new Vue()
// export {EventBus}

子页面1:
<template>
<div>
<input v-model="msg">
<button @click="send()">send</button>
</div>
</template>
<script>
import EventBus from ‘../assets/js/EventBus‘
export default {
name: ‘Header‘,
data(){
return {
msg:‘‘
}
},
methods:{
send(){
EventBus.$emit(‘sub-msg‘,this.msg); //向页面2发送数据
}
}
}
</script>
子页面2:
<template>
<div>
<p>sub页面接收header页面传过来的数据:<span>{{msg}}</span></p>
</div>
</template>
<script>
import EventBus from ‘../assets/js/EventBus‘
export default {
name: ‘Sub‘,
data(){
return {
msg:‘‘
}
},
mounted(){
EventBus.$on(‘sub-msg‘,function(msg){
this.msg=msg; //接收页面1传过来的数据
}.bind(this));
}
}
</script>

以上就是组件间同信的三种方式,还有一种通信就是vuex,vuex在本文就不写了,之前写过一篇对vuex
的使用及理解。针对一些数据比较难管理的项目来说还是用vuex,方便数据的管理。

原文地址:http://blog.51cto.com/12885303/2160766

时间: 2024-10-03 16:38:50

vue组件之间的通信的相关文章

vue组件之间的通信以及如何在父组件中调用子组件的方法和属性

在Vue中组件实例之间的作用域是孤立的,以为不能直接在子组件上引用父组件的数据,同时父组件也不能直接使用子组件的数据 一.父组件利用props往子组件传输数据 父组件: <div> <child v-bind:my-message="parentMsg"></child>//注意传递参数时要用-代替驼峰命名,HTML不区分大小写 </div> 子组件: Vue.component('child', { // camelCase in Ja

【转】vue父子组件之间的通信

vue父子组件之间的通信 在vue组件通信中其中最常见通信方式就是父子组件之中的通性,而父子组件的设定方式在不同情况下又各有不同.最常见的就是父组件为控制组件子组件为视图组件.父组件传递数据给子组件使用,遇到业务逻辑操作时子组件触发父组件的自定义事件.无论哪种组织方式父子组件的通信方式都是大同小异. 父组件到子组件通讯 父组件到子组件的通讯主要为:子组件接受使用父组件的数据,这里的数据包括属性和方法(String,Number,Boolean,Object, Array ,Function).v

VUE 2.0 父子组件之间的通信

父组件是通过props属性给子组件通信的来看下代码: 父组件: <parent> <child :child-com="content"></child> //注意这里用驼峰写法哦 </parent> data(){ return { content:'sichaoyun' }; } 子组件通过props来接受数据 第一种方法 props: ['childCom'] 第二种方法 props: { childCom: String //这里

组件之间的通信(子组件-改变父组件的值)

在vue中,组件之间的通信,是不建议子组件改变父组件的值,因为一个父组件有可能会有很多子组件,改来改去会很难管理(别人都这样说,我信) 试试: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src='../vue.js'> </script> </head> <bod

通俗易懂了解Vue组件之间的通信方式

1.前言 Vue框架倡导组件化开发,力求将一个大的项目拆分成若干个小的组件,就如同我们小时玩堆积木一样,一个大房子是由若干个小积木组成.组件化开发最大问题就是组件之间数据能够流通,即组件之间能够通信.而组件间通信无非就分为三种情况:外层的大组件向内部的小组件通信,内部的小组件向外部的大组件通信,平级之间组件通信.说的官方一点就是: 父组件与子组件通信 子组件与父组件通信 非父子组件通信 针对这三种情况,下面将一一展开介绍. 2.父组件 - -> 子组件 父组件向子组件传递数据通过props.通俗

vue组件中的通信

一.组件间的关系 1.父子关系 2.兄弟关系 3.隔代关系 二.组件间的通信方式 1.props 2.$emit/$on 3.VUEX 4.$parent/$children 5.$attrs/$listeners 6.provide/inject 三.通信方式举例 新建了一个过程,采用webpack来管理项目.  方法一:props / $emit 1.props---父组件向子组件传值 子组件:sub1.vue 父组件:app.vue 父组件通过props向下传递给子组件.注:组件中的数据共

vue2.0嵌套组件之间的通信($refs,props,$emit)

vue的一大特色就是组件化,所以组件之间的数据交互是非常重要,而我们经常使用组件之间的通信的方法有:props,$refs和emit. 初识组件之间的通信的属性和方法 props的使用 子组件使用父组件的数据,使用vue的属性props. 当我们在父组件parent里面嵌套一个子组件son的时候,如果我们需要使用父组件的数据的时候,我们可以在子组件标签上面绑定一个属性,然后在子组件里面通过props来调用这个属性,就可以使用这个数据了. //父组件 <sonPart :list="list

React 组件基本使用(3) ---父子组件之间的通信

当有多个组件需要共享状态的时候,这就需要把状态放到这些组件共有的父组件中,相应地,这些组件就变成了子组件,从而涉及到父子组件之间的通信.父组件通过props 给子组件传递数据,子组件则是通过调用父组件传给它的函数给父组件传递数据. 很简单的一个例子,我们在输入框中输入温度,输入框下面显示冷和热.这里就有两个组件,输入框和它下面的显示内容,且它们共享一个状态,就是温度.所以我们要把温度这个状态放到这两个组件的父组件中.这里就有三个组件,一个输入框TemperatureInput,  一个是显示内容

react native 之子组件和父组件之间的通信

react native开发中,为了封装性经常需要自定义组件,这样就会出现父组件和子组件,那么怎么在父组件和子组件之间相互通信呢,也就是怎么在各自界面push和pop.传值. 父组件传递给子组件: 父组件: 在主组件里面,使用通过写一个子组件的属性,直接把值或者navigator传给子组件即可.如下20行: 1 /** 2 * Sample React Native App 3 * https://github.com/facebook/react-native 4 * 父组件传递给子组件 5