vue.js父组件使用外部对象的方法示例
作者:zakwu 发布时间:2024-05-29 22:43:22
标签:vue.js,父组件,外部对象
最近在碰到有同学问我,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的函数作为一等公民还有很多有趣的应用。
来源:http://zakwu.me/2017/04/18/vuede-shi-jian-chuan-ru-wai-bu-chan-shu/


猜你喜欢
- 本文实例讲述了Python决策树之基于信息增益的特征选择。分享给大家供大家参考,具体如下:基于信息增益的特征选取是一种广泛使用在决策树(de
- 在图像处理中,直方图是非常重要,也是非常有用的一个处理要素。在skimage库中对直方图的处理,是放在exposure这个模块中。1、计算直
- Python list append方法给列表追加元素描述append函数可以在列表的末尾添加新的对象。函数无返回值,但是会修改列表。语法l
- 在这篇文章(不敢妄称教程,最多称之为学习笔记)里,我会从头开始实现客户端模板的效果。不过你不要期望能够在这里找到可以直接拿去使用直接复用灵活
- TTS简介TTS(Text To Speech)是一种语音合成技术,可以让机器将输入文本以语音的方式播放出来,实现机器说话的效果。TTS分成
- 写在前面因为暂时还没有想好做什么具体的某个项目来提升对python的理解,所以就自己想着做一下小玩意来加强一下自己对一些库和方法的理解分析1
- 一. lamda匿名函数为了解决一些简单的需求而设计的一句话函数# 计算n的n次方def func(n): return n**nprint
- 一、tensorboard的简要介绍TensorBoard是一个独立的包(不是pytorch中的),这个包的作用就是可视化您模型中的各种参数
- 本文实例讲述了Python3.5内置模块之os模块、sys模块、shutil模块用法。分享给大家供大家参考,具体如下:1、os模块:提供对操
- 简介:使用python的过程中肯定少不了读取文件的操作,传统的形式是使用 直接打开、然后在操作、然后再关闭,这样代码量稍微大些不说,一旦在操
- 稀疏矩阵-sparsepfrom scipy import sparse稀疏矩阵的储存形式在科学与工程领域中求解线性模型时经常出现许多大型的
- 这篇文章主要介绍了基于python操作ES实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 1.collatz序列编写一个名为 collatz()的函数,它 有一个名为 number 的参数。如果参数是偶数, 那么 collatz(
- 将单引号替换为双引号1、若对象为字符串str = "{'err_no': 0,'err_str':
- 一、程序功能:为Repeater实现分页二、窗体设计:1、新建ASP.NET Web应用程序,命名为Repeater2,保存路径为http:
- 1. desc 命令 格式: desc tablename columnname 例子: desc `table` `mid` desc `
- 前言:Python内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。Python对SMTP支持有smtplib和ema
- 最简单的例子:a = [1,1,1,1,2,2,2,3,3,1,1,1,3]# 问:计算a中最多有几个连续的1很明显,答案是4如果用代码实现
- 本文实例讲述了Python队列RabbitMQ 使用方法。分享给大家供大家参考,具体如下:目前的exchange的路由策略是:每个需要队列的
- ASP 错误代码 说明 ASP 0100 内存不足 ASP 0101 意外错误 ASP 0102 需要字符串输入 ASP 0103 需要数字