Vue组件间的数据传输
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组件间的数据传输的更多相关文章
- 【Android开发日记】之入门篇(十二)——Android组件间的数据传输
组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...
- Vue 组件间传值
前言 Vue 作为现在比较火的框架之一,相信您在使用的过程中,也会遇到组件间传值的情况,本文将讲解几种 Vue 组件间传值的几种方法,跟着小编一起来学习一下吧! 实现 注意: 学习本文,需要您对 Vu ...
- vue组件间通信六种方式(完整版)
本文总结了vue组件间通信的几种方式,如props. $emit/ $on.vuex. $parent / $children. $attrs/ $listeners和provide/inject,以 ...
- Vue组件间通信-Vuex
上回说到Vue组件间通讯,最后留了一个彩蛋~~~Vuex.Vuex是另一种组件通讯的方法,这节来说说Vuex(store仓库). 首先Vuex需要安装,安装的方式有很多,在这里就不一一细说了.我是通过 ...
- Vue组件间通信6种方式
摘要: 总有一款合适的通信方式. 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的 ...
- webpack+vue 组件间传参(单一事件中心管理组件通信--$root),如果有路由的话会失效
先给一个例子: <body> <div id="box"> <com-a></com-a> <com-b></co ...
- vue 组件间的通信
(1)props:用于父组件向子组件传递消息 使用方法: 在父组件中,使用子组件时,<Child v-bind:data="data"/>,通过v-bind把子组件需要 ...
- vue组件间的通信
组件的定义: 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素, Vue.js 的编译器为它添加特殊功能.v ...
- vue组件间通信
组件间通信(父子,兄弟) 相关链接\组件通信http://www.cnblogs.com/xulei1992/p/6121974.html 学习链接Vue.js--60分钟快速入门http://www ...
随机推荐
- 【springcloud】Eureka服务注册中心搭建
转自:https://blog.csdn.net/pengjunlee/article/details/86538997 Spring Cloud是一系列框架的集合,它利用Spring Boot的开发 ...
- redis内存回收
1.定时过期expilre expire key TTL 10定时器 主动淘汰 2.惰性过期 被动淘汰 3getCommand expireIfNeed() 设置内存上线 set memory 上线 ...
- request请求《一》
1. request对象通常用来接收客户端提交到服务端的数据,如:在servlet或者action中可以用request.getParameter()的方法获取获取参数内容: 2. requestSc ...
- apt-get 安装程序时报 'E: Unable to locate package xxx' 错误处理办法
提示无法定位包,要执行命令更新: sudo apt-get update
- Linux 自旋锁,互斥量(互斥锁),读写锁
自旋锁(Spin Lock) 自旋锁类似于互斥量,不过自旋锁不是通过休眠阻塞进程,而是在取得锁之前一直处于忙等待的阻塞状态.这个忙等的阻塞状态,也叫做自旋. 自旋锁通常作为底层原语实现其他类型的锁. ...
- Gogs (Go git server) 使用笔记
issue: 话题,一个新特性,BUG或其他关注的任何话题,都可创建issure,便于讨论,明确目标. label: 标签,一般用于描述issue的类型,如:bug.feature.enhanceme ...
- 源码解析.Net中Middleware的实现
前言 本篇继续之前的思路,不注重用法,如果还不知道有哪些用法的小伙伴,可以点击这里,微软文档说的很详细,在阅读本篇文章前,还是希望你对中间件有大致的了解,这样你读起来可能更加能够意会到意思.废话不多说 ...
- Linux中MySQL的安装以及卸载
一.MySQL MySQL是一种开放源代码的关系型数据库管理系统,开发者为瑞典MySQL AB公司.在2008年1月16号被Sun公司收购.而2009年,SUN又被Oracle收购.目前 MySQL被 ...
- C++之常指针,指针常量,函数指针,const用法总结
1.const char *p,char const *p,char * const p 对于C++而言,没有const * 修饰符,所以,const只可以修饰类型或者变量名.因而const char ...
- grpc基础
RPC 框架原理 RPC 框架的目标就是让远程服务调用更加简单.透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP).序列化方式(XML/Json/ 二进制)和通信细节.服务调用者可以像调 ...