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 相关文章推荐
javascript自启动函数的问题探讨
Oct 05 Javascript
再谈Jquery Ajax方法传递到action(补充)
May 12 Javascript
基于原生JS实现图片裁剪
Aug 01 Javascript
AngularJS打开页面隐藏显示表达式用法示例
Dec 25 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
Vue中的ref作用详解(实现DOM的联动操作)
Aug 21 Javascript
移动端效果之IndexList详解
Oct 20 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 Javascript
详解JavaScript中的数组合并方法和对象合并方法
May 11 Javascript
详解vue微信网页授权最终解决方案
Jun 16 Javascript
React Native 混合开发多入口加载方式详解
Sep 23 Javascript
使用p5.js实现动态GIF图片临摹重现
Oct 23 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
PHP实现活动人选抽奖功能
2017/04/19 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
extjs 时间范围选择自动判断的实现代码
2014/06/24 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
理解JS绑定事件
2016/01/19 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
微信小程序 登录实例详解
2017/01/16 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
[01:32]DOTA2次级联赛——首支职业女子战队选拔赛全记录
2014/10/23 DOTA
打包发布Python模块的方法详解
2016/09/18 Python
用Python PIL实现几个简单的图片特效
2019/01/18 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
python 实现图片修复(可用于去水印)
2020/11/19 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
Merrell迈乐澳大利亚网站:购买户外登山鞋
2017/05/28 全球购物
美国椅子和沙发制造商:La-Z-Boy
2020/10/25 全球购物
Java工程师面试集锦之Spring框架
2013/06/16 面试题
急诊科护士自我鉴定
2013/10/14 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
班长竞选演讲稿
2014/04/24 职场文书
工作评语大全
2014/04/26 职场文书
工作目标责任书
2014/07/23 职场文书
导游欢迎词范文
2015/01/23 职场文书
最感人的道歉情书
2015/05/12 职场文书
金陵十三钗观后感
2015/06/04 职场文书
Python爬取科目四考试题库的方法实现
2021/03/30 Python
帮你提高开发效率的JavaScript20个技巧
2021/06/18 Javascript