methods的实现原理

article/2025/7/18 11:55:06

一、直观的感受methods的使用

首先直观的感受methods方法的使用,同样以计数器为例,

<!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>methods的实现原理</title>
</head>
<body><div id="app"><h1>{{msg}}</h1><h1>计数器:{{count}}</h1><button @click="addOne">加一</button></div><script>new Vue({el : "#app",data:{msg: "methods的实现原理",count:0},methods:{addOne(){this.count++}}})</script></body>
</html>

不难看出来,其methods中的方法是用来处理事件执行相应逻辑的代码 。对于上述代码来说,其addOne()方法就是来处理的相应逻辑——实现不断加1的功能。在页面上点击按钮触addOne()方法,它就会执行 this.count++,让 count 增加。

二、🧠 methods 的实现原理是什么?

Vue 实例初始化时到底发生了什么?—— 挂载方法

当我写下如下代码的时候 

new Vue({el : "#app",data:{msg: "回调函数中的this",count:0},methods:{addOne(){this.count++}}
})

Vue 会进行一系列的初始化操作。其中的一部分是初始化 methods —— Vue 会把我们写在methods 中的函数挂载到 Vue 实例(this)上

📦 举个比喻:你写了一堆工具(函数)放在工具箱(methods),Vue 会把它们一一拿出来,贴在你的“Vue 小人”身上(Vue 实例),这样你就能用 this.someMethod() 来调用。

那和通过this之间访问data有什么区别呢?是否也是通过数据代理机制来实现的呢?

三、和 data 的区别?

this.count访问count的时候是通过数据代理机制的getter方法来实现的,而通过Vue实例来访问methods中定义的方法使用的却不是数据代理机制,是通过 Vue 在初始化阶段,手动把 methods 中的函数“挂载”到 Vue 实例(vm)上实现的。

绑定的过程大致如下所示。

function initMethods(vm, methods) {for (let key in methods) {const method = methods[key]// 只接受函数,其他类型会报错if (typeof method !== 'function') {console.warn(`${key} is not a function`)continue}// 把方法“复制”到 Vue 实例上,并绑定 thisvm[key] = method.bind(vm)}
}

 

 

 

 


http://www.hkcw.cn/article/TlBumyUSwb.shtml

相关文章

晨控CK-FR03与TwinCAT3配置EtherCAT通讯连接手册

晨控CK-FR03与TwinCAT3配置EtherCAT通讯连接手册 晨控CK-FR03系列作为晨控智能工业级别RFID读写器,支持大部分工业协议如RS232、RS485、以太网。支持工业协议Modbus RTU、Modbus TCP、Profinet、EtherNet/lP、EtherCat以及自由协议TCP/IP等。 本期主题&#xff1a;围绕CK-FR03…

大模型-attention汇总解析之-MLA

一、核心思想 先看下初始的MLA的一般性公式&#xff1a; 我们一般会缓存的是投影后的k_i, v_i而不是投影前的x_i, c_i &#xff0c;根据 MLA 的这个做法&#xff0c;通过不同的投影矩阵再次让所有的 K、V Head 都变得各不相同&#xff0c;那么 KV Cache 的大小就恢复成跟 MHA …

多线程(3)

1volatile关键字: 1.1volatile的功能 volatile关键字能够保证内存可见性 当变量被volatile修饰后: 写操作--->会将寄存器内的值修改后会第一时间将新值写回内存(主内存),不会引起一个另外一个线程去读的时候还读个旧数据,导致出现bug,比如将01改为1后就应该立马写回内存…

WIN11+VSCODE搭建c/c++开发环境

搭建c/cby win11vscode 前面试过了ubuntuvscode,macosvscode,win11visual studio搭建&#xff0c;本来以为win11vscode是手到擒来的&#xff0c;没想到颇有些周折。可能解决方案也并不完美&#xff0c;先记录下来&#xff0c;以后有改进再来修改。 安装vscode https://code.v…

20250530-C#知识:String与StringBuilder

String与StringBuilder string字符串在开发中经常被用到&#xff0c;不过在需要频繁对字符串进行增加和删除时&#xff0c;使用StringBuilder有利于提升效率。 1、String string是一种引用类型而非值类型&#xff08;某些方面像值类型&#xff09;使用“”进行两个string对象的…

04-redis-分布式锁-edisson

1 基本概念 百度百科&#xff1a;控制分布式系统之间同步访问共享资源方式。 在分布式系统中&#xff0c;常常需要协调他们的动作。如果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源&#xff0c;那么访问这些资源的时候&#xff0c;往往需要互斥来防止…

01 Netty简介

文章目录 概要1 Hello World1.1 什么是netty&#xff1f;1.2 Netty 的核心特性1.3 初识 netty 2 Netty 的核心组件2.1 EventLoop 和 EventLoopGroup2.1.1 基本概念2.1.2 与 Channel 关联2.1.3 EventLoopGroup 的实现2.1.4 常用方法 2.2 Channel2.2.1 Channel 的类型2.2.2 Chann…

熵最小化Entropy Minimization (一): 基本认识

文章目录 1. 前置知识Softmax函数信息熵&#xff08;Entropy&#xff09; 2. 熵最小化3. 案例理解4. 总结 熵最小化是一种利用未标记数据的策略&#xff0c;其核心思想是鼓励模型对未标记数据做出“自信”的预测&#xff0c;即预测概率分布尽可能尖锐&#xff08;Peaky&#xf…

jmeter:登录接口的token用于下一个接口

1、创建线程组 -》 添加 登录请求&#xff0c;在登录请求里面添加【正则表达式】 正则表达式提取器 引用名称&#xff1a;newtoken 正则表达式&#xff1a;token"."(*?) 模板&#xff1a; 1 1 1 匹配数字(0代表随机)&#xff1a;0 缺省值&#xff1a;null 2、创建…

Leetcode 2005. 斐波那契树的移除子树游戏

1.题目基本信息 1.1.题目描述 斐波那契树是一种按这种规则函数 order(n) 创建的二叉树&#xff1a; order(0) 是空树。 order(1) 是一棵只有一个节点的二叉树。 order(n) 是一棵根节点的左子树为 order(n - 2) 、右子树为 order(n - 1) 的二叉树。 Alice 和 Bob 在玩一种…

类 Excel 数据填报

类 Excel 填报模式&#xff0c;满足用户 Excel 使用习惯 数据填报&#xff0c;可作为独立的功能模块&#xff0c;用于管理业务流程、汇总采集数据&#xff0c;以及开发各类数据报送系统&#xff0c;因此&#xff0c;对于报表工具而言&#xff0c;其典型场景之一就是利用报表模…

TreeMap、TreeSet和HashMap、HashSet

目录 一、TreeMap&TreeSet 1.数据结构&#xff1a; 2.时间复杂度&#xff1a; 3.键/元素: 4.TreeMap基本操作: (与 HashMap 类似&#xff0c;但 put, get, remove 等操作会根据键的顺序进行)&#xff1a; 5.TreeMap遍历&#xff1a; 6.TreeSet基本操作 (与 HashSet 类…

电工基础【2】自锁、互锁、正反转电路

04 自锁、正反转电路 我们讲一下这个自锁和正反转。 自锁电路图示例图 加了一个这个 KM1 自锁。加了 KM1 的辅助触头&#xff0c;它怎么实现呢&#xff1f;它怎么就自锁了呢&#xff1f;没加它的时候为什么是点动&#xff1f;加它为什么自锁&#xff1f; 讲解一下。首先我们…

【计算机网络】传输层UDP协议

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;计算机网络 &#x1f339;往期回顾&#x1f339;&#xff1a; 【计算机网络】应用层协议Http——构建Http服务服务器 &#x1f516;流水不争&#xff0c;争的是滔滔不…

day40python打卡

知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 作业&#xff1a;仔细学习下测试和训练代码…

2022-2023-2-移动机器人设计与实践-期末B

2022-2023-2-移动机器人设计与实践-期末A-CSDN博客 本文介绍了《移动机器人设计与实践》课程期末考试试卷B卷的内容与参考答案。试卷包含分析题、设计题、实践题和编程题四部分&#xff0c;总分100分。分析题考察学生对空中、水面和地上三种移动机器人模型运动机制及应用场景的…

DM8部分函数的功能分别举例说明

DM8部分函数的功能分别举例说明 1 环境说明2 函数功能使用示例2.1 AVG OVER2.2 COUNT OVER2.3 MIN OVER&#xff0c;MAX OVER&#xff0c;SUM OVER2.4 DENSE_RANK2.5 ROW_NUMBER2.6 FIRST2.7 LAG2.8 WM_CONCAT 3 更多达梦数据库全方位指南:安装 优化 与实战教程 1 环境说明 Cp…

大语言模型 24 - MCP 自动操作 提高模型上下文能力 Cursor + Sequential Thinking Server Memory

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; Java篇&#xff1a; MyBatis 更新完毕目前开始更新 Spring&#xff0c;一起深入浅出&#xff01; 大数据篇 300&#xff1a; Hadoop&…

【多线程初阶】线程状态 线程安全

文章目录 1.线程状态线程的状态及状态转移 2.多线程带来的风险 - 线程安全(重点)线程安全问题产生的原因如何解决线程安全问题 1.线程状态 EE的第一篇总览中有提到过 进程的状态 1.就绪 2.阻塞 这都是从操作系统的视角看待的 Java线程也是对操作系统线程的封装,针对状态这里…

Python 序列的修改、散列和切 片(Vector类第4版:散列和快速等值 测试)

Vector类第4版&#xff1a;散列和快速等值测试 我们要再次实现__hash__ 方法。加上现有的__eq__ 方法&#xff0c;这会把 Vector 实例变成可散列的对象。 示例 9-8 中的__hash__ 方法简单地计算 hash(self.x) ^ hash(self.y)。这一次&#xff0c;我们要使用^&#xff08;异或…