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 相关文章推荐
Javascript面向对象编程
Mar 18 Javascript
JS实现简单的Canvas画图实例
Jul 04 Javascript
js获取checkbox值的方法
Jan 28 Javascript
javascript实现全角半角检测的方法
Jul 23 Javascript
简介alert()与console.log()的不同
Aug 26 Javascript
基于JavaScript实现弹出框效果
Feb 19 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
Nov 20 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
Jan 10 Javascript
three.js欧拉角和四元数的使用方法
Jul 26 Javascript
javascript实现随机抽奖功能
Dec 30 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
Jan 07 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
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
PHP 将dataurl转成图片image方法总结
2016/10/14 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
2020/04/23 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
使用javascript将时间转换成今天,昨天,前天等格式
2015/06/25 Javascript
javascript中setTimeout使用指南
2015/07/26 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
完美解决IE不支持Data.parse()的问题
2016/11/24 Javascript
vue组件父与子通信详解(一)
2017/11/07 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
2019/07/06 Javascript
详解小程序如何动态绑定点击的执行方法
2019/11/26 Javascript
简单了解three.js 着色器材质
2020/08/03 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python读取Excel的方法实例分析
2015/07/11 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
对python 自定义协议的方法详解
2019/02/13 Python
python字符串循环左移
2019/03/08 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
Django和Ueditor自定义存储上传文件的文件名
2021/02/25 Python
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
销售顾问岗位职责
2014/02/25 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
服务宗旨标语
2014/07/01 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
话题作文之诚信
2019/11/28 职场文书
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python
Django框架中视图的用法
2022/06/10 Python