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 相关文章推荐
Prototype Function对象 学习
Jul 12 Javascript
输入自动提示搜索提示功能的使用说明:sugggestion.txt
Sep 02 Javascript
javascript常用的方法整理
Aug 20 Javascript
jquery实现顶部向右伸缩的导航区域代码
Sep 02 Javascript
Jquery ajax基础教程
Nov 20 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
Apr 01 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
完美的js div拖拽实例代码
Sep 24 Javascript
Vue打包后出现一些map文件的解决方法
Feb 13 Javascript
原生js实现下拉选项卡
Nov 27 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
Nov 05 Javascript
VUE解决跨域问题Access to XMLHttpRequest at
May 06 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
PHP4在Windows2000下的安装
2006/10/09 PHP
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
《PHP编程最快明白》第八讲:php启发和小结
2010/11/01 PHP
php跨站攻击实例分析
2014/10/28 PHP
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
JavaScript:Div层拖动效果实例代码
2013/08/06 Javascript
从零学JS之你需要了解的几本书
2014/05/19 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
js控制文本框只输入数字和小数点的方法
2015/03/10 Javascript
jQuery简单实现禁用右键菜单
2015/03/10 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
javascript闭包的理解
2015/04/01 Javascript
javascript与jquery中的this关键字用法实例分析
2015/12/24 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
旺旺在线客服代码 旺旺客服代码生成器
2018/01/09 Javascript
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
python实现哈希表
2014/02/07 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
Python使用Scrapy保存控制台信息到文本解析
2017/12/27 Python
python 初始化一个定长的数组实例
2019/12/02 Python
linux面试题参考答案(11)
2012/05/01 面试题
主持词开场白
2014/03/17 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
小学三年级学生评语
2014/04/22 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
离婚承诺书格式范文
2015/05/04 职场文书
Python中的min及返回最小值索引的操作
2021/05/10 Python
mysql配置SSL证书登录的实现
2021/09/04 MySQL