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  Error 对象 错误处理
May 18 Javascript
IE6图片加载的一个BUG解决方法
Jul 13 Javascript
JS获取IP、MAC和主机名的五种方法
Nov 14 Javascript
js对图片base64编码字符串进行解码并输出图像示例
Mar 17 Javascript
JavaScript移除数组内重复元素的方法
Mar 18 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
Kindeditor在线文本编辑器如何过滤HTML
Apr 14 Javascript
微信小程序模板之分页滑动栏
Feb 10 Javascript
jQuery基本选择器和层次选择器学习使用
Feb 27 Javascript
Angular.js指令学习中一些重要属性的用法教程
May 24 Javascript
vue进入页面时不在顶部,检测滚动返回顶部按钮问题及解决方法
Oct 30 Javascript
three.js 将图片马赛克化的示例代码
Jul 31 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
Zend Framework教程之资源(Resources)用法实例详解
2016/03/14 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
cakephp常见知识点汇总
2017/02/24 PHP
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
Angularjs 动态改变title标题(兼容ios)
2016/12/29 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
Vue脚手架编写试卷页面功能
2020/03/17 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
Python和GO语言实现的消息摘要算法示例
2015/03/10 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
2018/03/15 Python
python与字符编码问题
2019/05/24 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Python接口自动化判断元素原理解析
2020/02/24 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
python 发送get请求接口详解
2020/11/17 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
高二美术教学反思
2014/01/14 职场文书
倡议书格式
2014/04/14 职场文书
会计学专业求职信
2014/07/17 职场文书
2015年新教师工作总结
2015/04/28 职场文书
执行力心得体会范文
2016/01/11 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
详解Python生成器和基于生成器的协程
2021/06/03 Python