vue父组件触发事件改变子组件的值的方法实例详解


Posted in Javascript onMay 07, 2019

父组件向子组件通信

业务场景:现在我要在父组件点击一个回退按钮,这个回退会传进子组件中(子组件中有两步进程),子组件来处理。

解决方案

起初我是父组件通过props传值,但是发现只有组件第一次加载时才能传值,通过事件改变的父组件值并不会再通过过props传递,也就是说props只有加载组件时才会工作,并不会根据值改变动态操作

后面,我是通过操作dom的方法,this.$refs.children这样直接操作子组件

<ProgressTwo ref="progressTwo" v-else-if="progress==2" @second="recordProgress"></ProgressTwo> //这是子组件
 goSecond: function(){  //这是操作子组件的方法
  this.$refs.progressTwo.second = true
  this.second = false
}

注释:其实我们一直被父子组件概念束缚了,子组件就是相当于一个被包裹的div,只是那个div里有很多标签而已,或者可以理解为我们在父组件里用iframe嵌套了一个页面,这个页面是子组件(这是帮助理解的粗话)

现在讲讲父子组件通信

父组件向子组件传值

父组件

html

<div>
  <NotFound v-else :searchThing="search"></NotFound> //search是父组件要传的值
</div>

子组件

在script中拿值

props:{
  searchThing: String  //也可以给它一个默认值 (defaultAddress: {Type: Object,default:()=> 'default'})
},

子组件向父组件传值

通过发射函数

子组件

在script中通过函数告诉父组件

gotoPay: function(){
  this.$emit('second',data) //data是你要向父组件传的值(可传可不传看需求)
}

父组件

html

<ProgressTwo ref="progressTwo" v-else-if="progress==2" @second="recordProgress"></ProgressTwo>

script

父组件通过自定义的second事件监听子组件的发射

recordProgress: function(val){  //val用于接收子组件传过来的值
      if(val==true){
        this.second = val
      }else{
        if(val==false){
          this.progress = 3
        }else{
          this.progress = 1
        }
      }
    },

总结

以上所述是小编给大家介绍的vue父组件触发事件改变子组件的值的方法实例详解,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
点击显示指定元素隐藏其他同辈元素的方法
Feb 19 Javascript
jQuery改变form表单的action,并进行提交的实现代码
May 25 Javascript
JavaScript的instanceof运算符学习教程
Jun 08 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
jQuery鼠标悬停内容动画切换效果
Apr 27 jQuery
React简单介绍
May 24 Javascript
VUE实现强制渲染,强制更新
Oct 29 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
Apr 09 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
May 01 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 Javascript
微信小程序:数据存储、传值、取值详解
May 07 #Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
May 07 #Javascript
详解Vue前端生产环境发布配置实战篇
May 07 #Javascript
7个好用的JavaScript技巧分享(译)
May 07 #Javascript
微信小程序实现获取用户信息并存入数据库操作示例
May 07 #Javascript
vue搜索和vue模糊搜索代码实例
May 07 #Javascript
详解Vue demo实现商品列表的展示
May 07 #Javascript
You might like
PHP的加密方式及原理
2012/06/14 PHP
php实现插入排序
2015/03/29 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
用js+iframe形成页面的一种遮罩效果的具体实现
2013/12/31 Javascript
javascript中setTimeout的问题解决方法
2014/05/08 Javascript
Node.js中使用事件发射器模式实现事件绑定详解
2014/08/15 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
JS运动相关知识点小结(附弹性运动示例)
2016/01/08 Javascript
BootStrap Select清除选中的状态恢复默认状态
2017/06/20 Javascript
Angular 2.0+ 的数据绑定的实现示例
2017/08/09 Javascript
精读《Vue3.0 Function API》
2020/05/20 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
python基础教程之字典操作详解
2014/03/25 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
简单了解python中对象的取反运算符
2019/07/01 Python
Django REST framework 视图和路由详解
2019/07/19 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
简单了解python元组tuple相关原理
2019/12/02 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
tensorflow 模型权重导出实例
2020/01/24 Python
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
喜诗官方在线巧克力店:See’s Candies
2017/01/01 全球购物
设计师大码女装:11 Honoré
2020/05/03 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
电钳专业个人求职信
2014/01/04 职场文书
财务主管岗位职责
2014/02/28 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
小学运动会加油词
2015/07/18 职场文书
redis实现共同好友的思路详解
2021/05/26 Redis
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android