vue2源码解读:new Vue()细节及应用点

Vue源码系列(一):Vue源码解读的正确姿势 作为一名开发人员,阅读源码是非常好的学习方式,尤其Vue又是当下很受欢迎的前端框架,随着用的人越来越多,不断推动着源码地完善。在源码中有着各位大佬多年积淀下来的精华,而这些精华就非常值得我们学习。 阅读详情

源码地址  

地址1

操作方式:  F12打开控制台, F5刷新即可跳入断点, 如下图所示:

知识点:

1. instanceof 检测是不是运用了 new 操作符, 保证了通过原型链( prototype chain) 继承了默认的属性,例如  $delete,$destroy 等

2.通过 Object.defineProperty(Vue.prototype, '$data', dataDef) 定义的是被继承但不被共享的属性 。Vue.prototype.$set = set; 直接定义在原型上的属性是继承且被共享的,源码中有如下例子:

 

接着往下走进入到了原型中定义的私有方法Vue.prototype._init,调用了一系列init方法

知识点:

1.当进入到如下方法时,通过 Object.create(null)  创建的对象, 原型对象是null,可以有效节省内存

2.当调用callHook(vm, 'beforeCreate') 时

如上图所示,可知每次调用相关生命周期函数时,都可以通过监听 vm.$once('hook:beforeDestroy', fn)   来进行相关的操作,增加代码的关联性,弊端有可能让有些人看不懂,相关实例链接

地址2    

3.当走完一系列的init方法时,最终vm上挂载了一些最基础的属性,例如写组件时会用到的$attrs,$listeners,例如图下所示

new Vue()就顺利走完了

可加微信,进行相关Vue探讨

Vue源码解读(下)-vue2 主要是从原理、实战层面解读了Vue2版本的核心,本节接着分享Vue2源码内容,从底层源码解读Vue2,抽丝剥茧探究Vue2的框架结构,核心的响应式原理实现。 阅读详情

相关推荐

Vue 源码解读-学习方法

前言 最近在准备一些 Vue 系列的文章和视频,之前 Vue 的源码也读过好几遍,但是一直没写相关的文章,所以最近就计划写一写。 目标 精通 Vue 技术栈的源码原理,这是这系列的文章最终目的。 首先会从 Vue 源码解读开,会产出一系列的文章和视频,从详细刨析源码,再到手写 Vue 1.0和Vue 2.0。之后会产出周边生态相关库的源码分析和手写系列,比如:vuex、vue-router、vue-cli 等。 相信经过这一系列的认真学习,大家都可以在自己的简历上写上这么一条:精通...

LeZiJie的博客 1324

vue2 框架运行原理剖析系列(一)之 new Vue()实例化过程到底做了什么!!!

new Vue 实例化过程

1161

Halcon dyn_threshold详解

dyn_threshold 原型 dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 功能 利用局部阈值分割图像 参数列表 OrigImage (input_object):原始图像 ThresholdImage (input_object):处理后图像(一般采用滤波处理) RegionDynThresh (output_object):分割后区域 Offset (input_control):灰

ZiLiangQin的博客 1万+

Vue 2的入门

Vue 2的学习

m0_51024444的博客 2699

【芯片驱动】2. CMT2300A配合硬件测试(灵敏度和发射功率)的软件实现

前言 在开发一款无线射频产品的时候,软件是一部分,硬件也是一部分。而决定无线收发性能的,首先是硬件的匹配电路,然后才到软件部分的优化。 一款无线射频产品,首先需要先决定是在那个频率范围内(当然是国家允许的范围内),然后硬件则需要在基于这个频点范围进行硬件的参数匹配,具体又分为发送功率匹配、天线匹配、和接收灵敏度的匹配。 现在我们使用2300a这款无线芯片来说,除非自己的团队是射频专家,则可以自己进行无线外围电路的设计外,另外一种更加快捷的方式,就是寻找原厂技术支持,他们会给...

sishuihuahua的博客 7052

告别ZotFile!Zotero 7+百度网盘文献同步全攻略(含软链接避坑指南)

本文针对Zotero 7用户,提供了告别ZotFile插件后,利用百度网盘实现文献附件同步的完整解决方案。详细讲解了如何通过设置Zotero链接目录与创建软链接,将附件库迁移至云盘,并附有详细的避坑指南,确保数据安全与多设备同步的稳定性。

mmm90的博客 586

vue2源码解析——new Vue()这个过程究竟做了什么?

new Vue() 是 Vue.js 框架中用于创建根 Vue 实例的语法。当我们使用 Vue.js 构建一个单页面应用时,通常会先创建一个根 Vue 实例,然后在该实例中定义应用的数据、方法、计算属性等,以及挂载根组件。具体来说,new Vue() 的作用是:创建一个 Vue 实例,该实例代表整个 Vue 应用的根实例。通过传入的选项对象来配置该 Vue 实例,包括数据、计算属性、方法、生命周期钩子函数等。将该 Vue 实例挂载到一个真实的 DOM 元素上,使得应用

涵盖了计算机专业基础知识、数学建模相关实践、复杂网络论文研究、LeetCode算法刷题经验、C语言开发经验、前端Vue、React框架开发实战相关知识 1755

大疆mini 3 pro rtmp推流(带屏遥控器不支持)windows

大疆mini 3 pro无人机rtmp推流(带屏遥控器不支持)至windows电脑

xbsigeibwkouvfcj的博客 3430

vue2 源码解析(三)new Vue初始化过程

源码分析 1. 片段一 文件:vue\src\core\instance\index.js 源码: import { initMixin } from './init' import { stateMixin } from './state' import { renderMixin } from './render' import { eventsMixin } from './events' import { lifecycleMixin } from './lifecycle' import

逆水寒 1096

合成孔径雷达Chirp Scaling(CS)算法MATLAB仿真实现

本人也是初学《合成孔径雷达成像算法与实现》,在GitHub上下载的关于CS算法的代码,仔细读了读,发现中间有一些不合理之处,动手改了一改,重新写了一个代码供初学者学习,有什么问题留言即可。 非常感谢源代码的作者,虽然中间有少许不正确的地方,但是对我理解cs算法的帮助非常大,非常感谢!!! 代码中提到的(4.31)这种均是在《合成孔径雷达成像算法与实现》中的公式 以下是MATLAB的仿真程序,直接复...

weixin_41700188的博客 7851

3分钟接入满血版DeepSeek-R1:字节火山引擎手把手教程!免费50万tokens!

3分钟接入满血版DeepSeek-R1:字节火山引擎手把手教程!免费50万tokens!

hunteritself的博客 2万+

Vue2源码解读

例如,Vue.js 会在内部定义一些工具方法,这些工具方法既可以在浏览器端的 Vue.js 中使用,也可以在服务端的 Vue.js 中使用。需要注意的是,在Vue 2.x中,如果你使用了构建时预编译(例如通过vue-loader),那么模板已经被编译成了渲染函数,Vue在运行时就不需要再次编译了。在Vue 3.x中,编译过程有所变化,因为Vue 3引入了编译时优化和更高效的编译策略,但基本概念仍然相同:模板被编译成渲染函数,然后Vue使用这些渲染函数来生成和更新DOM。时,实际上是在调用这个构造函数。

警警的博客 2474

施密特触发电路详细原理介绍

我们想获得矩形脉冲,有种方法是可以采用整形的方法获得矩形脉冲,但前提是可以找到频率和幅度都符合要求的电压信号。 我们设定矩形脉冲的几个指标。 施密特电路是脉冲波形变换中一种常采用的电路,主要有以下两个特点: 1.输入电平从低电平上升过程中电路状态转换为对应的输入电平,与高电平下降过程中对应的输入转换电平不同。 2.通过电路内部的正反馈使输出电压波形的边沿变得很陡。 施密特电路的结构和工作原理 我们先从模电的角度来分析此电路的工作原理。 此电路是通过公共发射极电阻耦合的两级正反馈放大器。 v1输入为低电平

fcxgfdjy的博客 1万+

vue2源码解析(一) - new Vue()的初始化过程

new Vue()的初始化过程详析一、前置工作1. 获取Vue源码2. Vue源码项目文件结构2.1 项目根目录结构说明2.2 核心代码目录说明3. 调试环境搭建二、寻找项目运行入口文件三、new Vue()的初始化过程解析1. 思维导图2. 源码解析2.1 扩展$mount()方法2.2 src/platforms/web/runtime/index.js2.2.1 定义__patch__方法。2.2.2 实现$mount()。2.3 核心源码src/core/index.js2.3.1 初始化全局API

qq_36782473的博客 2041

Open3D 合并两个点云【2025最新版】

两个点云中的数据连接,博客长期更新,本文最新更新时间为:2025年4月26日。

点云侠的博客 7435

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【Vue】Vue.js源码剖析—new Vue()发生了什么?

大家好,我是小伞,下面是自己对Vue.js源码中new Vue()部分的整理,如有错误欢迎点出哦。 源码直通车 vue.js源码github直通车:https://github.com/vuejs/vue 正题引入 在 Vue.js 中我们可以采用简洁的模板语法来声明式的将数据渲染为 DOM: <div id="app"> {{ message }} </div> v...

Umbrella_Um的博客 1652

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

vueJs源码解读0-1

vue源码解读-1 在github上下载到源码的后在src的目录下也即是该所有分块的源文件的地址所在的地方,使用webstrom在file–>Settings–>languages&Frameworks中选择javascript使用ECMAScript6 1. index.js import Vue from ‘./instance/vue’ import installGlobal

RankBill 4026

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深入讲解一下 Vue 3 的核心源码库 vuejs/core

track 负责“依赖收集”,trigger 负责“派发更新”。

u011091936的博客 1388

Vue进阶—new Vue()时发生了什么

new Vue()时发生了什么,源代码解析

webchang的博客 4377

vm options什么意思_vue2.0源码解读 数据驱动:new Vue() 发生了什么?

关注“前端学苑” ,坚持每天进步一点点「~vue2.0源码解读~」Vue 一个核心思想是数据驱动,相信大家一定对这个不陌生。所谓数据驱动,就是视图由数据驱动生成。相比传统的使用jQuery等前端库直接操作DOM,大大提高了开发效率,代码简洁易维护。本篇文章主要是 Vue源码探秘之 “ 数据驱动 ”。主题内容:new Vue()发生了什么?这同样也是Vue必考面试题之一。正文从这里...

weixin_39627408的博客 357

Vue2.x源码:new Vue()做了啥

BradenHan的专栏 290

Vue源码解读

本文主要介绍了Vue.js的源代码解读相关的步骤和技巧,包括安装Vue.js源代码、学习Vue.js的架构、阅读Vue.js的源代码、参考Vue.js的文档和社区资源,以及尝试修改Vue.js的源代码等内容。如果你想深入学习Vue.js的实现原理和内部机制,阅读本文可以为你提供一定的参考和帮助。

m0_73442777的博客 2934

从vue2源码看为什么需要使用Vue.set()和this.$set()

从源码层次看vue提供的vue.set()和this.$set()这两个api还是很简单的,由于本文没有详细解释vue依赖收集和触发,所以有的地方说的还是很模糊。在后续文章中我们会进行vue3源码的解读,从源码出发讲清楚vue3中为什么不再需要使用Vue.set()和了。

qq_36348403的博客 1220

Vue2 源码解读三:Vue实例

文章目录 Vue2 源码解读一:Global API Vue2 源码解读二:mergeOptions Vue2 源码解读三:new Vue   1、入口方法   2、initMixin   3、stateMixin   4、eventsMixin   5、lifecycleMixin   6、renderMixin Vue2 源码解读三:new Vue 在创建Vue应用时,都会用到初始化Vue实例对象的方法new Vue(options)。接下来,就看看在创建Vue实例对象时,Vue2源码都做了些..

Vincent的博客 625
上一篇: CSS函数之var()
下一篇: 详解Vue中的Vue.extend
coderMozart
博客等级 码龄10年 5粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值