vue的组件通讯
Vue的组件通讯又称组件传值
一、父子组件传值:
父组件:
<子组件名 :动态变量名 (随便起)='你想要传递的数据' ></子组件名>
子组件:
利用 prop去接收父组件传过来的值
props:[ '父组件传递过来的动态变量(可以接收多个)' ]
** 注意点
props属性的优先级要高于data属性(data中的参数值不要和props中的值的名字重复,否则会覆盖)
父组件传值是单项数据且不能跨代传值
二、子父组件传值
子组件:
<button @click='事件名称' ></button>
methods:{
事件名称(){
//利用事件触发器以及自定义事件名称发送数据
this.$emit('自定义事件名称',数据)
}
}
父组件:
<子组件 @定义事件名称='事件名称(自己新定义的事件名,用来接收数据,触发事件)'> </子组件>
methods:{
事件名称(e){
// e 是数据源,就是子组件传递过来的数据
}
}
三、兄弟组件传值(非父子传值)
实现的方法有三种:
1 单一事件(缺点,必须在同一个页面,主要用于兄弟组件)
//在main.js中给Vue实例添加一个方法,接下来所有的组件都可以使用这个方法
Vue.prototype.eventBus(定义的变量) = new Vue()
//自定义的兄弟页面VB.vue页面
<div><button @click='toA'>传送数据给A</button></div>
methods:{
toA( ){
//发送数据给A
//调用触发事件
//$emit('事件名称', 数据)
this.eventBus.$emit('sendA', this.msg)
}
}
//自定义的兄弟页面VA.vue
mounted(){
//调用实时监听事件的变化
this.eventBus.$on('sendA', (e)=>{
console.log(e,'接收到b的数据');
this.dataB = e ;
})
}
2 本地存储方法:
本地存储:localStorage
会话存储:sessionStorage
<button @click = ' toLocal '>本地存储</button>
methods:{
toLocal(){
//localStorage.setItem('本地存储的key','需要存储的数据')
localStorage.setItem('info',this.info)
}
}
接收本地存储的参数
mounted:{
this.info = localStorage.getItem('info(本地存储中的key值)')
}
会话存储:sessionStorage(方法一样):
<button @click = ' toLocal '>本地存储</button>
methods:{
toLocal(){
//localStorage.setItem('本地存储的key','需要存储的数据')
localStorage.setItem('info',this.info)
}
}
接收本地存储的参数
mounted:{
this.info = localStorage.getItem('info(本地存储中的key值)')
}
3 Vuex状态管理
vue的组件通讯的更多相关文章
- seventBus(封装) 一个巧妙的解决vue同级组件通讯的思路
如果在你项目中需要多处用到同级组件通讯,而又不想去写繁琐的vuex,可以参考这个小思路.本人在写项目中琢磨出来的,感觉挺好用,分享一下. 1.在utils文件夹下添加BusEvent.js 注释已经很 ...
- vue的组件通讯 父传子 -- 子传父-- 兄弟组件的传值 vue的组件传值
首先文字简单撸一下 父子传子 -------首先在父组件上绑定一个属性,在子组件里用props接收,可以是数组或者是对象 子传父 ------在父组件升上自定义一个方法,在子组件里通过this ...
- vue同胞组件通讯解决方案(以下为一种另外可用vuex解决)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 深入理解Vue父子组件通讯的属性和事件
在html中使用元素,会有一些属性,如class,id,还可以绑定事件,自定义组件也是可以的.当在一个组件中,使用了其他自定义组件时,就会利用子组件的属性和事件来和父组件进行数据交流. 父子组件之间的 ...
- Vue父子组件通讯
我们知道,父组件不能修改子组件的数据[这种说法是不严谨的],严谨的说法是:子组件内部不能修改从父组件传递过来的值.原因是vue遵循的是数据单向流原则,父组件传递数据给子组件只能单向绑定,通过Props ...
- vue组件通讯之provide / inject
什么是 provide / inject [传送门] vue的组件通讯方式我们熟知的有 props $emit bus vuex ,另外就是 provide/inject provide/inject ...
- 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...
- Vue组件通讯
Vue最常用的组件通讯有三种:父->子组件通讯.子->父组件通讯,兄弟组件通讯.(template用的pug模板语法) 1.父->子组件通讯 父->子组件通讯,是通过props ...
- Vue组件通讯黑科技
Vue组件通讯 组件可谓是 Vue框架的最有特色之一, 可以将一大块拆分为小零件最后组装起来.这样的好处易于维护.扩展和复用等. 提到 Vue的组件, 相必大家对Vue组件之间的数据流并不陌生.最常规 ...
随机推荐
- ICLR 2020 | 抛开卷积,multi-head self-attention能够表达任何卷积操作
近年来很多研究将nlp中的attention机制融入到视觉的研究中,得到很不错的结果,于是,论文侧重于从理论和实验去验证self-attention可以代替卷积网络独立进行类似卷积的操作,给self- ...
- Manjaro更新后 搜狗拼音输入法突然无法正常使用
之前Manjaro已经用了很久了,很多该配置的都已经配置好了,但是搜狗拼音在系统更新后突然无法使用 1检查 如下依赖 2.检查配置文件 3.发现一切配置没问题,此时输入 sogou-qimpanel ...
- deepin 系统 ssh,samba,redis,取消开机密码等相关配置
ssh安装 sudo apt-get install openssh-server service ssh start ssh root 用户登入配置 安装完毕,运行命令"sudo vi / ...
- OpenCV-Python 理解SVM | 五十五
目标 在这一章中 我们将对SVM有一个直观的了解 理论 线性可分数据 考虑下面的图像,它具有两种数据类型,红色和蓝色.在kNN中,对于测试数据,我们用来测量其与所有训练样本的距离,并以最小的距离作为样 ...
- TensorFlow系列专题(八):七步带你实现RNN循环神经网络小示例
欢迎大家关注我们的网站和系列教程:http://panchuang.net/ ,学习更多的机器学习.深度学习的知识! [前言]:在前面的内容里,我们已经学习了循环神经网络的基本结构和运算过程,这一小节 ...
- Kaggle竞赛入门:决策树算法的Python实现
本文翻译自kaggle learn,也就是kaggle官方最快入门kaggle竞赛的教程,强调python编程实践和数学思想(而没有涉及数学细节),笔者在不影响算法和程序理解的基础上删除了一些不必要的 ...
- Java中性能优化的45个细节
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时 ...
- 医学图像分割-在3DSlicer中使用英伟达的AI辅助工具NvidiaAIAssistedAnnotation自动切割医学图像教程
前期准备 下载3DSlicer并安装: 3DSlicer官网(http://www.slicer.org)或者直接下载(https://download.slicer.org),需要注意目前该插件只支 ...
- 【tensorflow2.0】处理文本数据
一,准备数据 imdb数据集的目标是根据电影评论的文本内容预测评论的情感标签. 训练集有20000条电影评论文本,测试集有5000条电影评论文本,其中正面评论和负面评论都各占一半. 文本数据预处理较为 ...
- C语言:const关键字用法
参考博客:https://www.cnblogs.com/bianchengzhuji/p/10335837.html const是constant的简写,是不变的意思.但并不是说它修饰常量,而是说它 ...