详解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 将disabled的元素置为enabled的三种方法
Jul 25 Javascript
javascript中普通函数的使用介绍
Dec 19 Javascript
在javascript中实现函数数组的方法
Dec 25 Javascript
node.js中的querystring.parse方法使用说明
Dec 10 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 Javascript
js动态创建及移除div的方法
Jun 03 Javascript
微信小程序图片横向左右滑动案例
May 19 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
Oct 20 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
Jun 06 Javascript
layuiAdmin循环遍历展示商品图片列表的方法
Sep 16 Javascript
vue监听浏览器原生返回按钮,进行路由转跳操作
Sep 09 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使用递归函数实现数字累加的方法
2015/03/16 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
二行代码解决全部网页木马
2008/03/28 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
js实现幻灯片播放图片示例代码
2013/11/07 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
2014/06/26 Javascript
JavaScript实现的使用键盘控制人物走动实例
2014/08/27 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
javascript返回顶部的按钮实现方法
2016/01/09 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
2017/08/22 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
Python实现身份证号码解析
2015/09/01 Python
详解python3中tkinter知识点
2018/06/21 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
利用matplotlib为图片上添加触发事件进行交互
2020/04/23 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
个人自我评价分享
2013/12/20 职场文书
大学生蛋糕店创业计划书
2014/01/13 职场文书
水果连锁超市创业计划书
2014/01/24 职场文书
十周年庆典策划方案
2014/06/03 职场文书
思想政治表现评语
2015/01/04 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书