vue.js父组件使用外部对象的方法示例


Posted in Javascript onApril 25, 2017

最近在碰到有同学问我,vue父组件怎么使用外部对象,具体例子如下:

有组件a:

<div @click="onClick">component a</div>
// componet a
...
methods: {
 onClick(evt) {
  // doSomething 这里只能拿到 mouseEvent
  this.outsideClickHandler(evt); // 调用外部处理函数
 }
}
...

有组件B,引用组件a,并传入outsideClickHandler方法:

<v-componetA :outside-click-handler="onClick">componentB</v-componetA>

对以上这种封装是组件库中再常见不过的封装了,实际使用中,有时候会需在component B传入component A的outsideClickHandler方法中使用component B中的数据对象,而component的代码又不能更改,这时候怎么办呢?

其实解决方案也是非常简单,但是有时候我们会"执迷不悟"。

废话不说,上代码!

// componet b
...
data() {
 a: {} // 数据
},
methods: {
 onClick(evt) {
  // 关键在于返回一个函数哦
  return (evt) => {
   // 这里也可以直接闭包使用
   console.log(this.a);
  }
 }
}
...

总之,对于vue函数来说,当无法直接传入参数的时候,可以考虑闭包实现,本文所说的也只是一个简单例子,js的函数作为一等公民还有很多有趣的应用。

总结

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

Javascript 相关文章推荐
js压缩利器
Feb 20 Javascript
JavaScript——DOM操作——Window.document对象详解
Jul 14 Javascript
js实现表单提交后不重新刷新当前页面
Nov 30 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
Jan 01 Javascript
深入理解javascript中的 “this”
Jan 17 Javascript
ES6新特性之Object的变化分析
Mar 31 Javascript
JS获取数组中出现次数最多及第二多元素的方法
Oct 27 Javascript
node.js通过axios实现网络请求的方法
Mar 05 Javascript
Js中将Long转换成日期格式的实现方法
Jun 05 Javascript
vue.js通过路由实现经典的三栏布局实例代码
Jul 08 Javascript
实用的Vue开发技巧
May 30 Javascript
IE11下CKEditor在Bootstrap Modal中下拉问题的解决
Sep 25 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
Apr 25 #Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
Apr 25 #Javascript
整理一些最近经常遇到的前端面试题
Apr 25 #Javascript
Vue.js 2.0学习教程之从基础到组件详解
Apr 24 #Javascript
js实现延迟加载的几种方法
Apr 24 #Javascript
利用Vue.js+Node.js+MongoDB实现一个博客系统(附源码)
Apr 24 #Javascript
浅析Angular2子模块以及异步加载
Apr 24 #Javascript
You might like
phpmyadmin 3.4 空密码登录的实现方法
2010/05/29 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
php加密解密字符串示例
2016/10/13 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
php数组指针函数功能及用法示例
2020/02/11 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
jQuery链式操作如何实现以及为什么要用链式操作
2013/01/17 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
Vue中 key keep-alive的实现原理
2018/09/18 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
浅谈js闭包理解
2019/04/01 Javascript
JavaScript实现下拉列表
2021/01/20 Javascript
python算法学习之基数排序实例
2013/12/18 Python
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
python实现将内容分行输出
2015/11/05 Python
Python中查看文件名和文件路径
2017/03/31 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python中的协程深入理解
2019/06/10 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
高一新生军训方案
2014/05/12 职场文书
2016年母亲节广告语
2016/01/28 职场文书
入团申请书格式
2019/06/20 职场文书
html5调用摄像头截图功能
2022/01/18 Javascript