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 相关文章推荐
jquery 弹出层注册页面等(asp.net后台)
Jun 17 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
JS操作Cookies的小例子
Oct 15 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
Jul 04 Javascript
js简单工厂模式用法实例
Jun 30 Javascript
js读取并解析JSON类型数据的方法
Nov 14 Javascript
vue两个组件间值的传递或修改方式
Jul 04 Javascript
JS如何获取地址栏的参数实例讲解
Oct 06 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
微信小程序webview 脚手架使用详解
Jul 22 Javascript
原生JS实现留言板功能
Feb 08 Javascript
js实现车辆管理系统
Aug 26 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
实用函数10
2007/11/08 PHP
php生成xml简单实例代码
2009/12/16 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
syntaxhighlighter 使用方法
2007/07/02 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
JS使用cookie设置样式的方法
2016/06/30 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
Javascript中八种遍历方法的执行速度深度对比
2017/04/25 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
Python模拟登录验证码(代码简单)
2016/02/06 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
python使用requests模块实现爬取电影天堂最新电影信息
2019/04/03 Python
Python中包的用法及安装
2020/02/11 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
戴森美国官网:Dyson美国
2016/09/11 全球购物
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
土木工程专业大学毕业生求职信
2013/10/13 职场文书
高校学生干部的自我评价分享
2013/11/04 职场文书
医务人员自我评价
2014/01/26 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
2014年度个人工作总结
2014/11/07 职场文书
员工工作能力评语
2014/12/31 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
公司仓库管理制度
2015/08/04 职场文书
成本低的5个创业项目:投资小、赚钱快
2019/08/20 职场文书
Python绘制散点图之可视化神器pyecharts
2022/07/07 Python