Vue的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据,必须使用特定的方法才能实现组件之间的数据传递。

下列为在vue-cli创建项目中的操作

一·父组件向子组件传递数据

在Vue中,用props向子组件传递数据。

子组件部分:
 <template>
<div class='header'>{{logo}}</div>
</template>
<script>
export default{
name:"headerDiv",
data(){
return {
............
}
},
props:["logo"]
}
</script> 

如果需要从父组件获取logo值,就需要使用props:['logo']

在props中添加了元素之后,就不需要在data中再添加变量了

父组件部分:

 <template>
<div id='app'>
<HeaderDiv :logo="logoMsg"></HeaderDiv>
</div>
</template>
<script>
import HeaderDiv from './compontents/header' export default{
name:'app',
data(){
return {
logoMsg:'VUE'
}
},
components:{
HeaderDiv
}
}
</script>

二·子组件向父组件传递数据

子组件主要通过事件传递数据给父组件

子组件部分:

 <template>
<div class='header'>
<input v-model="name" @change="getCh">
</div>
</template>
<script>
export default {
name:'header',
data(){
return {
name:''
}
},
methods:{
getCh:function(){
this.$emit('setCh',this.name)
}
}
}
</script>

当name变化时,将name传给父组件,

在getCh中用$emit来遍历setCh事件,并返回this.name

setCh是一个自定义事件,this.name通过该事件传递给父组件

父组件部分:

<template>
<div id='app'>
<HeaderDiv @trans='getCh'></HeaderDiv>
<div>{{user}}</div>
</div>
</template>
<script>
import HeaderDiv from './components/header'
export default {
name:'app',
data(){
return {
name:''
}
},
methods:{
getCh(msg){
this.name=msg
}
},
components:{
HeaderDiv
}
}
</script>

三·子组件互相传值

1.在main.js里全局定义eventBus

2.firstchild.vue

<template>
<div>
<button @click="btn">我是子组件一</button>
</div>
</template>
<style type="text/css"> </style>
<script type="text/javascript">
export default{
name:'Firstchild',
methods:{
btn(){
console.log('start');
eventBus.$emit('name','hello')
}
}
}
</script>

3.secondchild.vue

<template>
<div>
<button @click="btn2">我是子组件二</button>
</div>
</template>
<style type="text/css"> </style>
<script type="text/javascript">
export default{
name:'Secondchild',
methods:{
btn2(){
console.log('end');
eventBus.$on('name',function(val){
console.log('我是firstchild组件传过来的'+val)
})
}
}
}
</script>  

运行结果

Vue之组件之间的数据传递的更多相关文章

  1. 【整理】解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function https://www.cnblogs.com/jaso ...

  2. 解决vue不相关组件之间的数据传递----vuex的学习笔记,解决报错this.$store.commit is not a function

    Vue的项目中,如果项目简单, 父子组件之间的数据传递可以使用  props 或者 $emit 等方式 进行传递 但是如果是大中型项目中,很多时候都需要在不相关的平行组件之间传递数据,并且很多数据需要 ...

  3. Vue 爬坑之路(二)—— 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

  4. Vue基础知识之组件及组件之间的数据传递(五)

    vue中的组件是自定的标签,可以扩展的原生html元素,封装可复用的代码 note: 1.在标签命中不要使用大写,标签名字必须用短横线隔开 2.模板中只能有一个根元素,不能使用并列标签. 定义组件 全 ...

  5. (转)Vue 爬坑之路(二)—— 组件之间的数据传递

    Vue 的组件作用域都是孤立的,不允许在子组件的模板内直接引用父组件的数据.必须使用特定的方法才能实现组件之间的数据传递. 首先用 vue-cli 创建一个项目,其中 App.vue 是父组件,com ...

  6. React中父组件与子组件之间的数据传递和标准化的思考

    React中父组件与子组件之间的数据传递的的实现大家都可以轻易做到,但对比很多人的实现方法,总是会有或多或少的差异.在一个团队中,这种实现的差异体现了每个人各自的理解的不同,但是反过来思考,一个团队用 ...

  7. Angular06 组件、模块、父子组件之间的数据传递

    1 创建组件 进入到angular项目的根目录,执行如下命令 ng g component test-component 注意:执行完上述命令后在angular项目的src/app文件夹下就会多出一个 ...

  8. vue 组件之间的数据传递

    父组件传数据给子组件 创建数据 获取json数据 子组件传数据给父组件 1. 子组件使用$emit监听数据 getAreaValues(){ this.$emit('getAreaValues', { ...

  9. vue2.0 组件之间的数据传递

    组件间的数据传递// 父组件<template><div class="order"><dialog-addpro v-on:closedialog= ...

随机推荐

  1. 在C#中使用Json.Net进行序列化和反序列化及定制化

    序列化(Serialize)是将对象转换成字节流,并将其用于存储或传输的过程,主要用途是保存对象的状态,以便在需要时重新创建该对象:反序列化(Deserialize)则是将上面的字节流转换为相应对象的 ...

  2. [bzoj1110][POI2007]砝码Odw_贪心

    bzoj-1110 POI-2007 砝码Odw 参考博客:http://hzwer.com/4761.html 题目大意:在byteotian公司搬家的时候,他们发现他们的大量的精密砝码的搬运是一件 ...

  3. 设计模式之建造者(Builder)模式

    设计模式之建造者(Builder)模式 存在一些情况,比如,一些对象会有一些重要的属性,在这些属性没有恰当的值之前,对象不能作为一个完整的产品使用(如一个电子邮件最起码得有收件人地址):还有一些些情况 ...

  4. 用systemtap跟踪打印动态链接库的所有c++函数调用过程

    http://gmd20.blog.163.com/blog/static/168439232015475525227/             用systemtap跟踪打印动态链接库的所有c++函数 ...

  5. python type

    基于2.7 版本 type 是内置函数,有两种用法 class type(object) With one argument, return the type of an object. The re ...

  6. 【postgresql】postgresql中的between and以及日期的使用

    在postgresql中的between and操作符作用类似于,是包含边界的 a BETWEEN x AND y 等效于 a >= x AND a <= y 在postgresql中比较 ...

  7. 【postMan】发送post请求,返回错误码415

    解决方法: 参看:https://www.cnblogs.com/spec-dog/p/3731279.html 将Request的Content-Type:application/json;char ...

  8. Go -- 今日头条架构

    夏绪宏,今日头条架构师,专注对高性能大规模 Web 架构,云计算.性能优化.编程语言理论等方向,PHP committer,HHVM 项目贡献者.2009 加入百度,先后从事大规模 IDC 自运维设施 ...

  9. 使用datatables实现列宽设置、水平滚动条、显示某列部分内容

    示例 1.//使用 columnDefs 给列设置宽度 $('#example').DataTable( { "columnDefs": [ //给第一列指定宽度为表格整个宽度的2 ...

  10. STL 笔记(二) 关联容器 map、set、multimap 和 multimap

    STL 关联容器简单介绍 关联容器即 key-value 键值对容器,依靠 key 来存储和读取元素. 在 STL 中,有四种关联容器,各自是: map 键值对 key-value 存储,key 不可 ...