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 相关文章推荐
js函数使用技巧之 setTimeout(function(){},0)
Feb 09 Javascript
点击下载链接 弹出页面实现代码
Oct 01 Javascript
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
jQuery数据显示插件整合实现代码
Oct 24 Javascript
JavaScript获取表格(table)当前行的值、删除行、增加行
Jul 03 Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
Django1.7+JQuery+Ajax验证用户注册集成小例子
Apr 08 jQuery
利用Angular7开发一个Radio组件的全过程
Jul 11 Javascript
layer提示框添加多个按钮选择的实例
Sep 12 Javascript
JavaScript常用工具函数汇总(浏览器环境)
Sep 17 Javascript
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
微信小程序:数据存储、传值、取值详解
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
全国中波电台频率表
2020/03/11 无线电
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
深入浅析php中sprintf与printf函数的用法及区别
2016/01/08 PHP
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
新增加的内容是如何将div的scrollbar自动移动最下面
2014/01/02 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
js获取页面及个元素高度、宽度的代码
2016/04/26 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
微信小程序自定义组件实现环形进度条
2020/11/17 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
Python实现字符串格式化输出的方法详解
2017/09/20 Python
Django多数据库的实现过程详解
2019/08/01 Python
详解django中Template语言
2020/02/22 Python
比驿:全球酒店比价网
2018/06/20 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
书法比赛获奖感言
2014/02/10 职场文书
运动会通讯稿500字
2014/02/20 职场文书
婚前协议书怎么写
2014/04/15 职场文书
作文批改评语大全
2014/04/23 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
妇联主席先进事迹
2014/05/18 职场文书
机械系毕业生求职信
2014/05/28 职场文书
科技活动总结范文
2015/05/11 职场文书
2015暑期社会实践调查报告
2015/07/14 职场文书
新郎婚礼致辞
2015/07/27 职场文书
入党转正申请自我鉴定
2019/06/25 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
MySQL下使用Inplace和Online方式创建索引的教程
2021/05/26 MySQL
六个好看实用的 HTML + CSS 后台登录入口页面
2022/04/28 HTML / CSS
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL