1.父组件向子组件传输数据:自定义属性

1 //父组件
2 <Son :msg="message" :user="userinfo"></Son>
3
4 data(){
5 return{
6 message: 'hello vue.js',
7 userinfo: { name: 'zs', age: 20 }
8 }
9 }
//子组件
<template>
<div>
<h3>Son 组件</h3>
<p>message的值是: {{ msg }}</p>
<p>user的值是: {{ user }}</p>
</div>
</template> props: ['msg', 'user']

子组件在父组件注册后,通过v-bind将data中所存储的数据绑定到<Son>中;

在子组件中通过props接收父组件绑定的值,再将其渲染,完成数据传输。


2.子组件向父组件传输数据:自定义事件

//子组件 Son
export default {
data() {
return {
count: 0,
};
},
methods: {
add() {
this.count++;
//修改数据时,通过 $emit() 触发自定义时间,把自增结果传给父组件
this.$emit("numchange", this.count);
},
},
}
//父组件
<Son @numchange="getNewCount"></Son> export default {
data() {
return {
countFromSon: 0,
};
},
methods: {
//获取子组件传递过来的数据
getNewCount(val) {
this.countFromSon = val;
},
},
};

先在父组件 <Son> 中绑定一个自定义事件 numchange ,并在事件中写一个方法 getNewCount ,该方法是为了接收所需传参数并将其赋值给指定数据;

在子组件中通过add()方法中的 $emit 触发自定义事件 numchange ,并向其传入实参即父组件想要向子组件所传递的参数 this.count,this.count即是形参val的实参,将其赋值给父组件中的 countFromSon


3.兄弟组件之间的传输数据:EventBus

//兄弟组件A
import bus from './eventBus.js' export default {
data() {
return {
str: "阿巴阿巴",
};
},
methods: {
sendMsg(){
//通过eventBus发送数据
bus.$emit("share", this.str);
}
}
//eventBus.js
import Vue from 'vue' //向外共享Vue的实例对象
export default new Vue()
//兄弟组件B
//1.导入 eventBus 模块
import bus from "./eventBus.js"; export default {
data() {
return {
msgFromLeft: "",
};
},
created() {
//2.给bus绑定自定义事件
bus.$on("share", (val) => {
this.msgFromLeft = val;
});
},
};

1.初始化 EventBus 创建 eventBus.js,向外共享Vue实例对象,并在兄弟组件A和B中导入 eventBus.js

2.在作为数据发送方的 兄弟组件A 中,在 sendMsg 方法用$emit触发自定义事件share,将this.msg数据发送出去

3.在数据接收方 兄弟组件B ,通过给bus绑定自定义事件 share 接收数据并将其赋值给 msgFromLeft中

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

  1. 【Android开发日记】之入门篇(十二)——Android组件间的数据传输

    组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...

  2. Vue 组件间传值

    前言 Vue 作为现在比较火的框架之一,相信您在使用的过程中,也会遇到组件间传值的情况,本文将讲解几种 Vue 组件间传值的几种方法,跟着小编一起来学习一下吧! 实现 注意: 学习本文,需要您对 Vu ...

  3. vue组件间通信六种方式(完整版)

    本文总结了vue组件间通信的几种方式,如props. $emit/ $on.vuex. $parent / $children. $attrs/ $listeners和provide/inject,以 ...

  4. Vue组件间通信-Vuex

    上回说到Vue组件间通讯,最后留了一个彩蛋~~~Vuex.Vuex是另一种组件通讯的方法,这节来说说Vuex(store仓库). 首先Vuex需要安装,安装的方式有很多,在这里就不一一细说了.我是通过 ...

  5. Vue组件间通信6种方式

    摘要: 总有一款合适的通信方式. 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的 ...

  6. webpack+vue 组件间传参(单一事件中心管理组件通信--$root),如果有路由的话会失效

    先给一个例子: <body> <div id="box"> <com-a></com-a> <com-b></co ...

  7. vue 组件间的通信

    (1)props:用于父组件向子组件传递消息 使用方法: 在父组件中,使用子组件时,<Child v-bind:data="data"/>,通过v-bind把子组件需要 ...

  8. vue组件间的通信

    组件的定义: 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.v ...

  9. vue组件间通信

    组件间通信(父子,兄弟) 相关链接\组件通信http://www.cnblogs.com/xulei1992/p/6121974.html 学习链接Vue.js--60分钟快速入门http://www ...

随机推荐

  1. YARN的工作过程

    yarn的工作执行流程图 1.用户向YARN中提交应用程序 2.ResourceManager为该应用程序找到一个可用的NodeManager 并分配一个Container,然后在这个Containe ...

  2. 阿里云服务器上部署java项目(安装jdk,tomcat)

    安装JDK a.执行下面的yum指令安装,无线配置环境变量. 1.yum -y update #首先更新一下YUM源2.yum list Java* ---------#列出所有的JDK 3.yum ...

  3. Spring事物入门简介及AOP陷阱分析

    转载请注明出处: https://www.cnblogs.com/qnlcy/p/15237377.html 一.事务的定义 事务(Transaction),是指访问并可能更新数据库中各种数据项的一个 ...

  4. SpringBoot详解(一)——

    https://www.cnblogs.com/lifullmoon/p/14957771.html https://www.cnblogs.com/lifullmoon/p/14957751.htm ...

  5. chrome插件开发学习(一)

    两个不错的网址: 360chrome插件开发文档:http://open.chrome.360.cn/extension_dev/manifest.html 图灵 chrome插件开发于应用 电子书: ...

  6. 密钥交换协议之IKEv2

    1. IKEv2 1.1 IKEv2简介 IKEv2(Internet Key Exchange Version 2,互联网密钥交换协议第 2 版)是第 1 版本的 IKE 协议(本文简称 IKEv1 ...

  7. Openswan支持的算法及参数信息:

    数据封装加密算法: algorithm ESP encrypt: id=2, name=ESP_DES, ivlen=8, keysizemin=64, keysizemax=64 algorithm ...

  8. Nginx:常用基本命令与异常处理

    Nginx日志 - ./nginx-1.6.0-ems/logs/nginx.pid Nginx启动时应该使用cmd等命令行工具启动,双击启动同样会产生进程但会造成异常,判断条件是 ./nginx-1 ...

  9. MySQL日志管理、备份、恢复

    目录: 一.MySQL 日志管理 二.数据库备份的重要性与分类 三.常见的备份方法 四.MySQL完全备份 五.数据库完全备份分类 六.MySQL增量备份 七.MySQL数据库增量恢复 八.MySQL ...

  10. Java学习笔记--常用容器

    容器 1. 出现原因 解决程序运行时需要创建新对象,在程序运行前不知道运行的所需的对象数量甚至是类型的问题. Java中提供了一套集合类来解决这些问题包括:List.Set.Queue.Map 2. ...