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 相关文章推荐
用JS剩余字数计算的代码
Jul 03 Javascript
js function定义函数使用心得
Apr 15 Javascript
jquery 实现上下滚动效果示例代码
Aug 09 Javascript
jquery利用ajax调用后台方法实例
Aug 23 Javascript
jQuery实现的一个tab切换效果内部还嵌有切换
Aug 10 Javascript
JavaScript阻止事件冒泡示例分享
Dec 28 Javascript
JavaScript实现单击下拉框选择直接跳转页面的方法
Jul 02 Javascript
swiper 解决动态加载数据滑动失效的问题
Feb 26 Javascript
webpack4.x开发环境配置详解
Aug 04 Javascript
从表单校验看JavaScript策略模式的使用详解
Oct 17 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
Nov 09 Javascript
微信小程序实现点击导航条切换页面
Nov 19 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
php常用的安全过滤函数集锦
2014/10/09 PHP
js调用flash的效果代码
2008/04/26 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
用cssText批量修改样式
2009/08/29 Javascript
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
JS中批量给元素绑定事件过程中的相关问题使用闭包解决
2013/04/15 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
2016/11/18 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
2018/01/24 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
微信小程序实现卡片层叠滑动效果
2019/06/21 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
[01:08:33]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
Python3网络爬虫之使用User Agent和代理IP隐藏身份
2017/11/23 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
2018/11/29 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python遍历文件目录、批量处理同类文件
2019/08/31 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
祖国在我心中演讲稿300字
2014/05/04 职场文书
社区志愿者培训方案
2014/06/10 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
个人销售励志奋斗口号
2019/12/05 职场文书