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和jquery使按钮失效为不可用状态的方法
Jan 26 Javascript
iframe如何动态创建及释放其所占内存
Sep 03 Javascript
JavaScript实现获得所有兄弟节点的方法
Jul 23 Javascript
javascript冒泡排序小结
Apr 10 Javascript
Bootstrap按钮组件详解
Apr 26 Javascript
Javascript OOP之面向对象
Jul 31 Javascript
js 去掉字符串前后空格实现代码集合
Mar 25 Javascript
JS基于正则表达式实现的密码强度验证功能示例
Sep 21 Javascript
使用Jenkins部署React项目的方法步骤
Mar 11 Javascript
vue axios post发送复杂对象问题
Jun 04 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
谈谈JavaScript中的垃圾回收机制
Sep 17 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下通过伪造http头破解防盗链的代码
2010/07/03 PHP
php内核解析:PHP中的哈希表
2014/01/30 PHP
PHP实现显示照片exif信息的方法
2014/07/11 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
mac下多个php版本快速切换的方法
2016/10/09 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
老生常谈PHP面向对象之解释器模式
2017/05/17 PHP
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
AngularJS的ng Http Request与response格式转换方法
2016/11/07 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
Vim快速合并行及vim 将文件所有行合并到一行
2017/11/27 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
element-ui多文件上传的实现示例
2019/04/10 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
python获取从命令行输入数字的方法
2015/04/29 Python
Python用模块pytz来转换时区
2016/08/19 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
巴西备受欢迎的服装和生活方式品牌:FARM Rio
2020/02/04 全球购物
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
JAVA高级程序员面试题
2013/09/06 面试题
晚宴邀请函范文
2014/01/15 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
如何解决php-fpm启动不了问题
2021/11/17 PHP