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 相关文章推荐
Jquery中Ajax 缓存带来的影响的解决方法
May 19 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
Dec 28 Javascript
jQuery封装的获取Url中的Get参数示例
Nov 26 Javascript
JQuery选择器、过滤器大整理
May 26 Javascript
node.js实现登录注册页面
Apr 08 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
Jun 13 Javascript
原生JS上传大文件显示进度条 php上传文件代码
Mar 27 Javascript
详解jQuery如何实现模糊搜索
May 10 jQuery
关于layui 实现点击按钮添加一行(方法渲染创建的table)
Sep 29 Javascript
vue 取出v-for循环中的index值实例
Nov 09 Javascript
javascript实现视频弹幕效果(两个版本)
Nov 28 Javascript
精读《Vue3.0 Function API》
May 20 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通过header实现文本文件下载的代码
2010/08/08 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
详解php中的implements 使用
2017/06/13 PHP
用JavaScript事件串连执行多个处理过程的方法
2007/03/09 Javascript
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
jQuery源码分析-05异步队列 Deferred 使用介绍
2011/11/14 Javascript
javascript闭包入门示例
2014/04/30 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
jQuery.Validate表单验证插件的使用示例详解
2017/01/04 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
angular bootstrap timepicker TypeError提示怎么办
2017/06/13 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
js实现关闭网页出现是否离开提示
2017/12/07 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
python如何进行矩阵运算
2020/06/05 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
可贵的沉默教学反思
2014/02/06 职场文书
中式结婚主持词
2014/03/14 职场文书
什么是就业协议书
2014/04/17 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
go goroutine 怎样进行错误处理
2021/07/16 Golang
Python 实现Mac 屏幕截图详解
2021/10/05 Python
一文搞清楚MySQL count(*)、count(1)、count(col)区别
2022/03/03 MySQL
 分享一个Python 遇到数据库超好用的模块
2022/04/06 Python
详解Python中的for循环
2022/04/30 Python