vue父组件通过props如何向子组件传递方法详解


Posted in Javascript onAugust 16, 2017

前言

本文主要给大家介绍了关于vue中父组件通过props向子组件传递方法的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:

vue 组件中的 this

vue 中 data/computed/methods 中 this的上下文是vue实例,需注意。

例如:

注意:不应该对 data 属性使用箭头函数 (例如data: () => { return { a: this.myProp }} ) 。理由是箭头函数绑定了父级作用域的上下文,所以 this 将不会按照期望指向 Vue 实例,this.myProp 将是 undefined

https://cn.vuejs.org/v2/api/#methods

父组件通过props向子组件传递方法

父组件调用子组件,通过绑定callback属性,将方法传给子组件:

App.vue 

<search-bar class="f-fr" placeholder="请输入名字" mutationName='resetListData' :callback="callback"/>

子组件通过props获取父组件传过来的callback方法:

SearchBar.vue

export default {
 name: 'SearchBar',
 data() {
  return {
   input: ''
  }
 },
 methods: {
  setName: function () {
   var input = this.input;
   if (input.trim() == '') {
    alert("empty");
   }
   else {
    Api.searchTest(this.input,this.success );
   }

  },
  success(responseData) {
   this.callback(responseData);
  },
 },
 props: ['placeholder', 'apiName', 'moduleName', 'mutationName','callback']
}

通过 data

export default {
 ...
 data:function() {
 return {
  callback:function(responseData) {
  this.$store.commit('resetListData', responseData);
  }
 }
 },
 ...
};

此处callback以函数对象的方式,传入子组件,子组件调用的时候,this指向子组件

通过 methods

export default {
 ...
 methods: {
 callback(responseData) {
  this.$store.commit('resetListData', responseData);
 }
 }
};

此处callback是父组件的一个方法,个人理解,当父组件初始化时,该方法的this上下文就绑定了父组件的实例,因此当子组件调用callback 方法时,this指向父组件。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
javascritp实现input输入框相关限制用法
Jun 29 Javascript
IE6下JS动态设置图片src地址问题
Jan 08 Javascript
javascript 获取页面的高度及滚动条的位置的代码
May 06 Javascript
JavaScript 页面编码与浏览器类型判断代码
Jun 03 Javascript
JavaScript版DateAdd和DateDiff函数代码
Mar 01 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
基于Vue.js的表格分页组件
May 22 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
Oct 14 Javascript
深入浅析Node环境和浏览器的区别
Aug 14 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 Javascript
微信小程序文字显示换行问题
Jul 28 Javascript
关于vue.extend和vue.component的区别浅析
Aug 16 #Javascript
在一般处理程序(ashx)中弹出js提示语
Aug 16 #Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
Aug 16 #jQuery
详谈表单重复提交的三种情况及解决方法
Aug 16 #Javascript
详谈js对url进行编码和解码(三种方式的区别)
Aug 16 #Javascript
Node.js 的模块知识汇总
Aug 16 #Javascript
vue绑定设置属性的多种方式(5)
Aug 16 #Javascript
You might like
一个好用的分页函数
2006/11/16 PHP
上传多个文件的PHP脚本
2006/11/26 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
php删除数组元素示例分享
2014/02/17 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
小谈php正则提取图片地址
2014/03/27 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
ScrollDown的基本操作示例
2013/06/09 Javascript
巧用局部变量提升javascript性能
2014/02/24 Javascript
JS判断浏览器是否安装flash插件的简单方法
2016/09/13 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
JS 创建对象的模式实例小结
2020/04/28 Javascript
Javascript confirm多种使用方法解析
2020/09/25 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
从pandas一个单元格的字符串中提取字符串方式
2019/12/17 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
办公室员工岗位工作职责
2014/03/10 职场文书
幼儿园招生广告
2014/03/19 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
保研推荐信格式
2015/03/25 职场文书
国庆节新闻稿
2015/07/17 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
《曾国藩家书》读后感——读家书,立家风
2019/08/21 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS
【2·13】一图读懂中国无线电发展
2022/02/18 无线电