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 相关文章推荐
JavaScript使用prototype定义对象类型(转)[
Dec 22 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
Feb 26 Javascript
Bootstrap实现input控件失去焦点时验证
Aug 04 Javascript
Node.js和Express简单入门介绍
Mar 24 Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 Javascript
简单实现jquery隔行变色
Nov 09 jQuery
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
微信小程序实现多行文字超出部分省略号显示功能
Oct 23 Javascript
使用p5.js临摹动态图片
Nov 04 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
Nov 12 Javascript
微信小程序实现页面浮动导航
Jan 08 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
PHP 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
2014/04/29 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
正则表达式搭配js轻松处理json文本方便而老古
2013/02/17 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
Jquery动态替换div内容及动态展示的方法
2015/01/23 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
nodejs 使用 js 模块的方法实例详解
2018/12/04 NodeJs
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
Vue.js组件使用props传递数据的方法
2019/10/19 Javascript
VUE-ElementUI 自定义Loading图操作
2020/11/11 Javascript
python查看微信好友是否删除自己
2016/12/19 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
python占位符输入方式实例
2019/05/27 Python
python下PyGame的下载与安装过程及遇到问题
2019/08/04 Python
Django ModelForm操作及验证方式
2020/03/30 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
python 深度学习中的4种激活函数
2020/09/18 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
客服端调用EJB对象的几个基本步骤
2012/01/15 面试题
nginx搭建NFS网络文件系统
2022/04/14 Servers
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js