详解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、jquery实现几分钟前、几小时前、几天前等时间差显示效果的代码实例分享
Apr 11 Javascript
java、javascript实现附件下载示例
Aug 14 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
May 28 Javascript
ionic实现带字的toggle滑动组件
Aug 27 Javascript
D3.js实现文本的换行详解
Oct 14 Javascript
微信小程序实现给循环列表添加点击样式实例
Apr 26 Javascript
BootStrap 标题设置跨行无效的解决方法
Oct 25 Javascript
vue-router 组件复用问题详解
Jan 22 Javascript
红黑树的插入详解及Javascript实现方法示例
Mar 26 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
js实现从右往左匀速显示图片(无缝轮播)
Jun 29 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+JS+rsa数据加密传输实现代码
2011/03/23 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
php简单统计中文个数的方法
2016/09/30 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
input输入框的自动匹配(原生代码)
2013/03/19 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
js实现简单的碰壁反弹效果
2016/08/30 Javascript
小程序实现选择题选择效果
2018/11/04 Javascript
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
vue实现PC端分辨率适配操作
2020/08/03 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
python实现在目录中查找指定文件的方法
2014/11/11 Python
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
介绍Python中的__future__模块
2015/04/27 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
python实现web方式logview的方法
2015/08/10 Python
Python内置模块hashlib、hmac与uuid用法分析
2018/02/12 Python
使用matplotlib画散点图的方法
2018/05/25 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
解决pycharm下pyuic工具使用的问题
2020/04/08 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
上课睡觉检讨书
2014/01/28 职场文书
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
中层干部考核评语
2015/01/04 职场文书
高中运动会广播稿
2015/08/19 职场文书
导游词之上海杜莎夫人蜡像馆
2019/11/22 职场文书
浅谈Python协程asyncio
2021/06/20 Python
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android