详解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 相关文章推荐
jQuery 使用手册(七)
Sep 23 Javascript
JQuery EasyUI 数字格式化处理示例
May 05 Javascript
jQuery往返城市和日期查询实例讲解
Oct 09 Javascript
js无法获取到html标签的属性的解决方法
Jul 26 Javascript
babel基本使用详解
Feb 17 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
Aug 14 Javascript
富文本编辑器vue2-editor实现全屏功能
May 26 Javascript
Element DateTimePicker日期时间选择器的使用示例
Jul 27 Javascript
Javascript var变量删除原理及实现
Aug 26 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
php文件上传后端处理小技巧
2016/05/22 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
JS获取时间的方法
2015/01/21 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
2016/06/12 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
javascript实现的图片预览功能
2017/03/25 Javascript
Angular2中如何使用ngx-translate进行国际化
2017/05/21 Javascript
AngularJS创建一个上传照片的指令实例代码
2018/02/24 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
js模拟F11页面全屏显示
2019/09/17 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python实现两个list对应元素相减操作示例
2017/06/09 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
python滑块验证码的破解实现
2019/11/10 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
学习十八大报告感言
2014/02/04 职场文书
师说教学反思
2014/02/07 职场文书
学校志愿者活动总结
2014/06/27 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
2019经典广告词集锦!
2019/07/02 职场文书
PHP设计模式(观察者模式)
2021/07/07 PHP