Vue回调函数中的this

2025/4/25

向 

示例

一个例子——计数器,通过this来操作数据。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script><title>回调函数中的this</title>
</head>
<body><div id="app"><h1>{{msg}}</h1><h1>计数器:{{count}}</h1><button @click="addOne">加一</button></div><script>new Vue({el : "#app",data:{msg: "回调函数中的this",count:0},methods:{addOne(){this.count++}}})</script></body>
</html>

Vue(vm) 和 this的关系

methods:{addOne(){this.count++console.log(this === vm)}
}

所以不难发现。其实vm(vue实例对象) 和this是一个东西,所以其实我们也可以使用

vm.count++

来实现,但是一般更加常使用this。this就是vm,vm可以访问count通过数据代理。

箭头函数

<body><div id="app"><h1>{{msg}}</h1><h1>计数器:{{count}}</h1><button @click="addOne1">加一1</button><button @click="addOne2">加一2</button></div><script>const vm = new Vue({el : "#app",data:{msg: "回调函数中的this",count:0},methods:{addOne1(){this.count++},addOne2:()=>{this.count++}}})</script></body>

当使用箭头函数之后,计数器失效。因为箭头函数中没有this,箭头函数中的this是从父级作用域当中继承过来的。对于当前程序来说,父级作用域是全局作用域:window。

普通函数的this指向取决于函数的调用方式。当函数作为对象的方法调用时,this指向该对象;在全局作用域中调用函数,this指向全局对象。addOne1是一个普通函数,能够根据调用方式来决定this的指向,上述的调用是作为Vue实例对象的方法调用,所以this指向该Vue实例

但箭头函数不具备自己独立的this绑定,它的this是在定义时从父级作用域继承而来的,且不会被调用方式影响。addOne2 箭头函数定义于 methods 对象里,不过 methods 对象本身并非一个函数作用域,所以 addOne2 的父级作用域就是全局作用域。而全局作用域中并没有属性count。

所以在methods中尽量的不使用箭头函数,我们常需要在回调函数中使用到this和vm实例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/78540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一键快速转换音频视频格式的实用工具

软件介绍 Sundy音视频格式转换工具&#xff0c;支持一键转换音频和视频格式&#xff0c;还可以集成至右键菜单&#xff0c;让操作更加便捷。软件支持MP4、FLV、AVI、MKV、MP3、FLAC等多种格式转换&#xff0c;用户可以根据需求自由选择。 直白版 Sundy音视频格式转换工…

【AI论文】Tina:通过LoRA的微小推理模型

摘要&#xff1a;如何在语言模型中实现成本效益高的强大推理能力&#xff1f; 在这个基本问题的驱动下&#xff0c;我们提出了Tina&#xff0c;这是一个以高成本效益实现的小型推理模型家族。 值得注意的是&#xff0c;Tina 证明了仅使用最少的资源就可以开发出大量的推理性能&…

TC3xx学习笔记-UCB BMHD使用详解(一)

文章目录 前言UCB BMHDPINDISHWCFGLSENA0-3LBISTENACHSWENABMHDIDSTADCRCBMHDCRCBMHD_NPW0-7 总结 前言 AURIX Tc系列Mcu启动过程&#xff0c;必须要了解BMHD&#xff0c;本文详细介绍BMHD的定义及使用过程 UCB BMHD UCB表示User Configuration Block,UCB是Dflash,存储的地址…

H.264/AVC标准主流开源编解码器编译说明

An artisan must first sharpen his tools if he is to do his work well. 工欲善其事,必先利其器. 前言 想研究和学习H.264/AVC视频编解码标准的入门的伙伴们,不论是学术研究还是工程应用都离不开对源码的分析,因此首要工作是对各类编解码器进行编译,本文针对主流的一些符…

Adobe Photoshop(PS)2022 版安装与下载教程

Adobe Photoshop下载安装和使用教程 Adobe Photoshop&#xff0c;简称“PS”&#xff0c;是由Adobe Systems开发和发行的图像处理软件。Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具&#xff0c;可以有效地进行图片编辑和创造工作&#xff0c…

面试新收获-大模型学习

大模型原理 Transformer 架构与自注意力机制 Transformer 是当前大多数大模型采用的核心架构&#xff0c;由编码器-解码器组成&#xff0c;摒弃了传统 RNN 的顺序处理方式。Transformer 中关键在于多头自注意力机制&#xff08;Multi-Head Self-Attention&#xff09;&#xf…

华为OD机试真题——素数之积RSA加密算法(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C、GO六种语言的最佳实现方式&#xff1b; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析&#xff1b; 本文收录于专栏&#xff1a;《2025华为OD真题目录…

精益数据分析(29/126):深入剖析电子商务商业模式

精益数据分析&#xff08;29/126&#xff09;&#xff1a;深入剖析电子商务商业模式 在创业和数据分析的学习道路上&#xff0c;我们始终在探索如何更精准地把握商业规律&#xff0c;提升业务的竞争力。今天&#xff0c;我们依旧怀揣着共同进步的愿望&#xff0c;深入解读《精…

大模型奖励建模新突破!Inference-Time Scaling for Generalist Reward Modeling

传统的RM在通用领域面临准确性和灵活性挑战&#xff0c;而DeepSeek-GRM通过动态生成principle和critic&#xff0c;结合并行采样与meta RM引导的投票机制&#xff0c;实现了更高质量的奖励信号生成。论文通过Self-Principled Critique Tuning (SPCT)方法&#xff0c;显著提升了…

机器视觉的胶带模切应用

在电子制造领域&#xff0c;胶带模切工艺如同产品的“隐形裁缝”&#xff0c;从手机屏幕OCA光学胶到动力电池绝缘胶带&#xff0c;每一刀精准的切割都关乎产品性能与可靠性。传统人工对位方式难以应对微米级加工精度的严苛要求&#xff0c;而MasterAlign机器视觉系统的引入&…

Vue2+ElementUI实现无限级菜单

使用Vue2和ElementUI实现无限级菜单,通常菜单数据以树形结构存储,每个菜单包含多个子菜单 ,子菜单又可以继续包含更深层次的子菜单项。所以,需要使用递归形式,完成子项菜单的渲染。 这里,结合Element UI界面的el-menu和el-submenu组件来构建菜单结构,有子菜单时使用el-s…

如何使用WebRTC

WebRTC比较容易使用&#xff0c;只需要很少的步骤&#xff0c;有些消息在浏览器和服务器之间流动&#xff0c;有些则直接在两个浏览器之间流动&#xff0c; 1、建立WebRTC会话 a&#xff1a;建立WebRTC连接需要加入以下几个步骤&#xff1a; 获取本地媒体&#xff1a;getUse…

数据分析管理软件 Minitab 22.2.2 中文版安装包 免费下载

Minitab22.2.2 安装包下载链接: https://pan.baidu.com/s/1cWuDbvcWhYrub01C6QR81Q?pwd6666 提取码: 6666 Minitab软件是现代质量管理统计软件&#xff0c;全球六西格玛实施的共同语言。Minitab 已经在全球120多个国家&#xff0c;5000多所高校被广泛使用。

从新手到高手:小程序开发进阶技巧分享

小程序开发从入门到精通需要经历技术积累、架构优化和工程化实践等多个阶段。以下是结合真实项目经验的进阶路线与核心技术要点&#xff0c;涵盖性能优化、架构设计、跨平台开发等关键领域&#xff1a; 一、性能调优实战技巧 1. 首屏渲染加速方案 // 预请求关键数据&#xff…

Vue3后代组件多祖先通讯设计方案

在 Vue3 中&#xff0c;当需要设计一个被多个祖先组件使用的后代组件的通讯方式时&#xff0c;可以采用以下方案&#xff08;根据场景优先级排序&#xff09;&#xff1a; 方案一&#xff1a;依赖注入&#xff08;Provide/Inject&#xff09; 响应式上下文 推荐场景&#xff…

《代码之美:静态分析工具与 CI 集成详解》

《代码之美:静态分析工具与 CI 集成详解》 引言 在现代软件开发的快节奏环境中,代码质量和效率始终是开发者关注的核心。无论您是初学者,还是经验丰富的资深开发者,一个强大的工具链都能让您如虎添翼。而 Python 的静态代码分析工具,如 pylint、flake8 和 mypy,正是提升…

kafka安装、spark安装

kafka简介 Kafka就是一个分布式的用于消息存储的消息队列。 kafka角色 Kafka中存储的消息&#xff0c;被消费后不会被删除&#xff0c;可以被重复消费&#xff0c;消息会保留多长&#xff0c;由kafka自己去配置。默认7天删除。背后的管理工作由zookeeper来管理。 kafka安装 …

Jmeter数据库url开关设置+常用Beanshell

1、数据库url开关设置 &#xff08;79 90&#xff09; jdbc:mysql://test.lemonban.com:3306/future?allowMultiQueries-true&characterEncodingUTF-8 多条查询开关&#xff1a;allowMultiQueriestrue 字符集配置:characterEncodingUTF-8 2、用BeanShell提取Map中的方…

媒体关注:联易融聚焦AI+业务,重塑供应链金融生态

近日&#xff0c;供应链金融科技龙头企业联易融科技集团&#xff08;以下简称“联易融”&#xff09;发布的公告显示&#xff0c;截至2024年末&#xff0c;公司现金储备达51亿元&#xff0c;同比上一年增加2亿元。公司称&#xff0c;公司经营性现金流保持健康&#xff0c;现金储…

求解,如何控制三相无刷电机?欢迎到访评论

问题&#xff1a;通过一个集成的TF2104芯片控制H桥上桥臂和下桥臂&#xff0c;如何控制&#xff1f;还是说得需要PWM_UH和PWM_UL分开控制&#xff1f;