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

发布时间 - 2026-01-11 02:48:45    点击率:

前言

本文主要给大家介绍了关于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指向父组件。

总结

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


# vue  # 组件  # props  # vue父子组件传递  # vue父子组件传递数据  # vue之父子组件间通信实例讲解(props、$ref、$emit)  # Vue props用法详解(小结)  # 简单理解vue中Props属性  # 详解vue2父组件传递props异步数据到子组件的问题  # Vue3.5中响应式Props解构的编译原理  # 定了  # 相关内容  # 将是  # 给大家  # 请输入  # 这篇文章  # 谢谢大家  # 绑定  # 需注意  # 有疑问  # undefined  # myProp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 使用PHP下载CSS文件中的所有图片【几行代码即可实现】  千库网官网入口推荐 千库网设计创意平台入口  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  js实现获取鼠标当前的位置  Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】  如何在云指建站中生成FTP站点?  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  JS去除重复并统计数量的实现方法  青岛网站建设如何选择本地服务器?  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  JavaScript数据类型有哪些_如何准确判断一个变量的类型  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  如何彻底删除建站之星生成的Banner?  如何选择可靠的免备案建站服务器?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  如何打造高效商业网站?建站目的决定转化率  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  如何在万网开始建站?分步指南解析  php json中文编码为null的解决办法  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  黑客入侵网站服务器的常见手法有哪些?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  详解Android中Activity的四大启动模式实验简述  SQL查询语句优化的实用方法总结  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel如何创建自定义中间件?(Middleware代码示例)  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南  如何在万网自助建站中设置域名及备案?  Python高阶函数应用_函数作为参数说明【指导】  桂林网站制作公司有哪些,桂林马拉松怎么报名?  Python数据仓库与ETL构建实战_Airflow调度流程详解  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  LinuxCD持续部署教程_自动发布与回滚机制  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  JavaScript常见的五种数组去重的方式  详解Android——蓝牙技术 带你实现终端间数据传输  Laravel如何为API编写文档_Laravel API文档生成与维护方法  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  js代码实现下拉菜单【推荐】  香港服务器如何优化才能显著提升网站加载速度?  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】