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 Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
JavaScript将相对地址转换为绝对地址示例代码
Jul 19 Javascript
jquery 页眉单行信息滚动显示实现思路及代码
Jun 26 Javascript
再探JavaScript作用域
Sep 24 Javascript
关于编写性能高效的javascript事件的技术
Nov 28 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
详解vue-admin和后端(flask)分离结合的例子
Feb 12 Javascript
解决Webpack 热部署检测不到文件变化的问题
Feb 22 Javascript
mint-ui在vue中的使用示例
Apr 05 Javascript
vue-router中的hash和history两种模式的区别
Jul 17 Javascript
JavaScript设计模式之命令模式实例分析
Jan 16 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 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 SQLite类
2009/05/07 PHP
浅析PHP7新功能及语法变化总结
2016/06/17 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
简单谈谈PHP面向对象之标识对象
2017/06/27 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
2020/03/23 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
纯javascript判断查询日期是否为有效日期
2015/08/24 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
微信小程序 天气预报开发实例代码源码
2017/01/20 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
[05:07]DOTA2英雄梦之声_第14期_暗影恶魔
2014/06/20 DOTA
使用 Python 实现文件递归遍历的三种方式
2018/07/18 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
基于Python安装pyecharts所遇的问题及解决方法
2019/08/12 Python
python中自带的三个装饰器的实现
2019/11/08 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
Python模块相关知识点小结
2020/03/09 Python
构建高效的python requests长连接池详解
2020/05/02 Python
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
创建无烟单位实施方案
2014/03/29 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫
搭建Yolov5服务器
2022/04/30 Servers