详解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 相关文章推荐
JS 自动安装exe程序
Nov 30 Javascript
使用jquery读取html5 localstorage的值的方法
Jan 04 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 Javascript
jQuery结合ajax实现动态加载文本内容
May 19 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
用jQuery旋转插件jqueryrotate制作转盘抽奖
Feb 10 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
vue项目总结之文件夹结构配置详解
Dec 13 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
Js参数RSA加密传输之jsencrypt.js的使用
Feb 07 Javascript
vue中重定向redirect:‘/index‘,不显示问题、跳转出错的完美解决
Sep 28 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
PHP中的日期及时间
2006/11/23 PHP
支持php4、php5的mysql数据库操作类
2008/01/10 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
jsp网页搜索结果中实现选中一行使其高亮
2014/02/17 Javascript
jquery阻止后续事件只执行第一个事件
2014/07/24 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
arcgis.js控制地图地体的显示范围超出区域自动弹回(实现思路)
2021/01/28 Javascript
[02:37]2015国际邀请赛选手档案—LGD.Xiao8
2015/07/28 DOTA
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
python实现名片管理系统
2018/11/29 Python
对Xpath 获取子标签下所有文本的方法详解
2019/01/02 Python
python如何将多个PDF进行合并
2019/08/13 Python
html5开发之viewport使用
2013/10/17 HTML / CSS
演讲稿开场白
2014/01/13 职场文书
军训教官感言
2014/03/02 职场文书
投标服务承诺书
2014/05/28 职场文书
空气的环保标语
2014/06/12 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
赤壁观后感(2)
2015/06/15 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python