详解Vue中组件传值的多重实现方式


Posted in Javascript onAugust 16, 2019

vue中组件传值方式整理

1.我们最熟悉的父子组件传值

父->子 props
 子->父 $emit

这些我们最常用的就不说了,如果有不理解的,俺这儿有篇不错的文章,链接奉上~

https://www.cnblogs.com/LoveAndPeace/p/7273648.html

2.兄弟组件或无关系组件之间的传值

我们最常用的方式采用一个第三方变量 俗称eventbus
  通过其中一个$emit发另一个$on接收的方式 实现组件传值
  
  main.js中挂载一下

详解Vue中组件传值的多重实现方式

在其中一个页面$emit

详解Vue中组件传值的多重实现方式

另一个页面$on

详解Vue中组件传值的多重实现方式

是不是有点像昨天我写的pubsub呢?哈哈哈哈哈

3.attr和listener进行传值(注意,这两种只能向下传递)

父组件里的子组件上写上你要传递的键名键值,

详解Vue中组件传值的多重实现方式

子组件里通过{{$attrs}}拿到你所有传递的值

详解Vue中组件传值的多重实现方式

这样直接就拿到了,是不是很神奇~

效果:

详解Vue中组件传值的多重实现方式

子组件里通过{{$attrs}}拿到你所有传递的值

子组件下边还有组件 可以用v-bind:"$attrs"传递,在孙子组件中通过{{$attrs}}

详解Vue中组件传值的多重实现方式

listener用来传递事件,用法大致一个样

详解Vue中组件传值的多重实现方式

我们设置一个点击事件

在子元素中↓我们console下,看看拿到没有

详解Vue中组件传值的多重实现方式

详解Vue中组件传值的多重实现方式

再笼统的概述下
  vue中 listeners事件传递
父组件里的子组件上写个函数 比如@log="log",在当前页的methods:{}里对应上执行的语句
子组件触发的话里写个触发事件,如click="aaa" 
methods写法:
methods:{
 aaa(){
  this.$listeners.你父组件的那个方法 这里是this.$listeners.log()调用
 }
}

子组件下还有组件的话 用v-on:"$listeners"再往下传
下面继续用子组件获取的方法获取

4.采用ref的方式 有点react父传子的亚子

but!也不太一样 ,在你父组件引入的子组件上写个ref="xxx",你父组件便拿到了一系列子组件的东西,比如数据,事件等↓

详解Vue中组件传值的多重实现方式

详解Vue中组件传值的多重实现方式

5.用vuex 就不用说了吧 数据集中起来,每个页面值都能相互拿到

state里设置值

通过stor.state.值拿到值

通过commit 或者dispatch往mutations和actions里提交可以做数据对应处理等等....

6.通过provide设置,inject取值但是这种方式不建议用

举个栗子:

详解Vue中组件传值的多重实现方式

另一个组件

详解Vue中组件传值的多重实现方式

搞定~ 这是整理的一些组件传值的方法,初来乍到许多写文的格式不太会调,大家凑合看

总结

以上所述是小编给大家介绍的Vue中组件传值的多重实现方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Iframe 自适应高度并实时监控高度变化的js代码
Oct 30 Javascript
基于Jquery的仿Windows Aero弹出窗(漂亮的关闭按钮)
Sep 28 Javascript
JavaScript禁止页面操作的示例代码
Dec 17 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
May 16 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
浅谈javascript事件取消和阻止冒泡
May 26 Javascript
JavaScript Split()方法
Dec 18 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
关于jquery中动态增加select,事件无效的快速解决方法
Aug 29 Javascript
详解JQuery基础动画操作
Apr 12 jQuery
Vue实现拖放排序功能的实例代码
Jul 08 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
Jul 19 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
Aug 16 #Javascript
JavaScript JSON数据处理全集(小结)
Aug 15 #Javascript
JointJS JavaScript流程图绘制框架解析
Aug 15 #Javascript
基于vue写一个全局Message组件的实现
Aug 15 #Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
Aug 15 #Javascript
解决vuex刷新状态初始化的方法实现
Aug 15 #Javascript
超详细的5个Shell脚本实例分享(值得收藏)
Aug 15 #Javascript
You might like
wordpress之wp-settings.php
2007/08/17 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
php判断上传的Excel文件中是否有图片及PHPExcel库认识
2013/01/11 PHP
php中session退出登陆问题
2014/02/27 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
javascript 验证日期的函数
2010/03/18 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
2016/01/24 Javascript
微信小程序开发之大转盘 仿天猫超市抽奖实例
2016/12/08 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
python3实现短网址和数字相互转换的方法
2015/04/28 Python
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Django CSRF跨站请求伪造防护过程解析
2019/07/31 Python
部署Django到阿里云服务器教程示例
2020/06/03 Python
用Python开发app后端有优势吗
2020/06/29 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
小班重阳节活动方案
2014/02/08 职场文书
职业培训师职业生涯规划
2014/02/18 职场文书
《菜园里》教学反思
2014/04/17 职场文书
护士实习求职信
2014/06/22 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
上市公司董事长岗位职责
2015/04/16 职场文书
母亲节感言
2015/08/03 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
提取视频中的音频 Python只需要三行代码!
2021/05/10 Python
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android