E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Vue源码分析
剖析vue内部运行机制
掘金小册-剖析Vue.js内部运行机制Vue.js技术揭秘
Vue源码分析
Vue面试题尤雨溪讲解vueVue的实质Vue实际上是一个方法类,在原型上扩展了很多方法源码目录:src/core/instance
star-1331
·
2020-06-29 00:52
vue
vue(8) - 收藏集 - 掘金
2017百度前端技术学院——
vue源码分析
之动态数据绑定一-前端-掘金一、Object.keys()Object.keys()方法会返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用
weixin_34162228
·
2020-06-28 12:25
vue源码解析(一)——初始化流程及数据响应式过程梳理
学习目标
vue源码分析
(一)掌握源码学习方法初始化流程梳理深入理解数据响应式过程配置环境首先拷贝源码:gitclonhttps://github.com/vuejs/vue.gitcd.
哦哈哈
·
2020-06-21 03:53
vue.js
源码分析
源码学习
前端
javascript
Vue源码分析
—数据驱动(二)
VirtualDOMVirtualDOM这个概念相信大部分人都不会陌生,它产生的前提是浏览器中的DOM是很“昂贵"的,为了更直观的感受,我们可以简单的把一个简单的div元素的属性都打印出来,如图所示:可以看到,真正的DOM元素是非常庞大的,因为浏览器的标准就把DOM设计的非常复杂。当我们频繁的去做DOM更新,会产生一定的性能问题。而VirtualDOM就是用一个原生的JS对象去描述一个DOM节点,
oWSQo
·
2020-04-08 08:28
Vue源码分析
—组件化(二)
patch当我们通过createComponent创建了组件VNode,接下来会走到vm._update,执行vm.__patch__去把VNode转换成真正的DOM节点。但是针对一个普通的VNode节点,接下来我们来看看组件的VNode会有哪些不一样的地方。patch的过程会调用createElm创建元素节点,回顾一下createElm的实现,它的定义在src/core/vdom/patch.j
oWSQo
·
2020-04-07 00:58
Vue源码分析
(11)--实例分析component,props,slot
前言本文是vue2.x源码分析的第十一篇,主要看component,props,slot的处理过程!实例代码Vuespanfromparent-->debugger;varchild=Vue.component('child',{template:'{{name}}',props:['name']})varvm=newVue({el:'#app',name:'app',data:{message:
风之化身呀
·
2020-04-03 22:02
Vue源码分析
(5)--观察者收集、组件渲染挂载过程
前言本文是vue2.x源码分析的第五篇,主要讲解vue实例的观察者收集、组件渲染挂载以及页面更新过程!先看调用形式vm.$mount(vm.$options.el);1、分析$mountVue$3.prototype.$mount=function(el,hydrating){el=el&&query(el);//el不能是html和body元素if(el===document.body||el=
风之化身呀
·
2020-03-28 00:58
Vue源码分析
—组件化(三)
合并配置newVue的过程通常有2种场景,一种是外部我们的代码主动调用newVue(options)的方式实例化一个Vue对象;另一种是内部通过newVue(options)实例化子组件。无论哪种场景,都会执行实例的_init(options)方法,它首先会执行一个mergeoptions的逻辑,相关的代码在src/core/instance/init.js中:Vue.prototype._ini
oWSQo
·
2020-03-27 14:16
Vue源码分析
(10)--实例分析computed和watch
前言本文是vue2.x源码分析的第十篇,主要看computed和watch的处理过程!实例代码Vue{{messages}}varvm=newVue({el:'#app',name:'app',data:{message:'message'},computed:{messages(){returnthis.message+'s'}},watch:{message(){alert('messagec
风之化身呀
·
2020-03-13 17:04
Vue源码分析
(7)--实例分析v-if
前言本文是vue2.x源码分析的第七篇,主要看v-if的处理过程!实例代码Vuev-ifvarvm=newVue({el:'#app',name:'app',data:{show:true},});1总体流程通过第六篇的分析,可以知道,vue的编译挂载过程大致分为四个部分:1、将模板template转为ast结构的JS对象2、用ast得到的JS对象拼装render和staticRenderFns函
风之化身呀
·
2020-02-23 08:00
Vue源码分析
(9)--实例分析响应式设计
前言本文是vue2.x源码分析的第九篇,主要看响应式设计的处理过程!实例代码Vue{{message}}varvm=newVue({el:'#app',name:'app',data:{message:'message',}});debugger;setTimeout(()=>vm.message='messages',0)1、关键断点initData(vm)proxy(vm,"_data",'m
风之化身呀
·
2020-02-22 19:30
Vue源码分析
(4)--实例的初始化过程
前言本文是vue2.x源码分析的第四篇,主要讲解vue实例的初始化过程init*系列!先看调用形式initLifecycle(vm);initEvents(vm);initRender(vm);callHook(vm,'beforeCreate');initInjections(vm);//在data/props之前处理注入,暂不清楚作用Unknown4.1,本节不分析initState(vm);
风之化身呀
·
2020-02-16 22:39
Vue源码分析
—组件化(一)
Vue.js另一个核心思想是组件化。所谓组件化,就是把页面拆分成多个组件,每个组件依赖的CSS、JavaScript、模板、图片等资源放在一起开发和维护。组件是资源独立的,组件在系统内部可复用,组件和组件之间可以嵌套。我们在用Vue.js开发实际项目的时候,就是像搭积木一样,编写一堆组件拼装生成页面。接下来我们会用Vue-cli初始化的代码为例,来分析一下Vue组件初始化的一个过程。importV
oWSQo
·
2020-02-07 21:45
前端学习之一Vue.js笔记
学习任务1.1ES6为主ES6是基础一定要多敲,学好箭头函数、let/const、作用域、Promise、解构赋值1.2Vue.jsGitHub:https://github.com/vuejs/vue
Vue
慕慕_973e
·
2020-02-02 22:12
Vue源码分析
-自定义事件处理
Vue.js中有四个事件API可以用来处理自定义事件,分别是$on,$once,$off,$emit。初始化当引入Vue.js时会给VueFunction原型上绑定一些方法和属性。源码在vue-2.6.11/src/core/instance/index.jsfunctionVue(options){this._init(options)}initMixin(Vue)stateMixin(Vue)
My_Bells
·
2020-01-13 15:37
Vue.js
vue
Vue源码分析
(8)--实例分析v-*指令
前言本文是vue2.x源码分析的第八篇,主要看v-*指令的处理过程!实例代码Vue{{pre}}-->-->-->{{pre}}-->{{item}}-->{{cloak}}-->{{once}}-->v-show-->click-->-->varvm=newVue({el:'#app',name:'app',data:{items:[1,2,3],pre:'v-pre',once:'v-once
风之化身呀
·
2020-01-04 01:08
Vue源码分析
(2)--从一个实例开始
前言本文是vue2.x源码分析的第二篇,主要讲解Vue初始化过程!1、贯穿全文的例子:Vue{{message}}varapp=newVue({el:'#app',name:'app',mixins:{beforeCreate(){console.log('beforeCreate-1');}}props:['header-value'],data:{message:'hello'},before
风之化身呀
·
2020-01-02 01:20
Vue源码分析
(3)-- mergeOptions上篇
上一篇以init方法为入口,介绍了Vue实例化的过程。写的过程中觉得mergeOptions是一个重点,需要拉出来单独写一篇。不看懂mergeOption这个方法,在newVue的过程中,参数到底是怎么合并到实例中去的,至少我是还有疑问的。也就是说,下面的两个选项el以及data到底在初始化的过程中经历了什么,我想要搞清楚。newVue({el:'#app',data:{msg:'hello'}}
Esa小喵
·
2020-01-01 16:35
Vue源码分析
—前置知识
在分析Vue的源码之前我们需要了解一些前置知识,如Flow、源码目录、构建方式、编译入口等。认识FlowFlow是facebook出品的JavaScript静态类型检查工具。Vue.js的源码利用了Flow做了静态类型检查,所以了解Flow有助于我们阅读源码。为什么用FlowJavaScript是动态类型语言,它的灵活性有目共睹,但是过于灵活的副作用是很容易就写出非常隐蔽的隐患代码,在编译期甚至看
oWSQo
·
2019-12-30 01:42
vue文档集合
(组件间通讯)EventBus在Vue中的使用vue-cli#2.0webpack配置分析vue2.0api文档webpack配合vue.js实现完整的单页面demovuedemo整理含react资料
vue
pauljun
·
2019-12-24 05:51
3.
vue源码分析
——组件化
组件化是vue中另一个核心思想所谓组件化就是把页面拆分成多个组件每个组件依赖的cssjs模板图片等资源放在一起开发维护组件是资源独立的组件在系统内部可以复用组件和组件之间可以相互嵌套1.createComponent上一篇我们了解了普通vnode的生成现在我们来看看组件vnode的创建依然是通过_createElement函数创建里面会做一层判断得知是组件时调用createComponent方法此
function-maize
·
2019-12-18 11:49
vue组件化原理
vue
javascript
1.
vue源码分析
——准备工作
本次源码分析的vue版本为2.x版本在分析vue源码之前我们需要先准备一些必要的知识这样看源码时才不会出现一些疑惑下面我们进入正题1.认识flow我们都知道js是动态类型语言它的灵活性有目共睹但这也意味着我们在写js代码的时候很容易写出一些非常隐蔽的隐患代码为了解决这个问题vue使用了flow类型检查工具之所以选择flow主要因为babel和eslint都有对应的插件以及支持语法非常小的改动就可以
function-maize
·
2019-12-16 14:53
vue.js
javascript
2017百度前端技术学院——
vue源码分析
之——动态数据绑定一
一、Object.keys()Object.keys()方法会返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用(forin)循环遍历该对象时返回的顺序一致(顺序一致不包括数字属性)(两者的主要区别是for-in还会遍历出一个对象从其原型链上继承到的可枚举属性)。letobj={name:'dailu',age:123,sex:"female"}console.
起这么长的名字根本没有用
·
2019-12-13 18:07
2017百度前端技术学院——
vue源码分析
之——动态数据绑定二(发布/订阅者模式)
源码地址一、发布/订阅者模式订阅者把自己想订阅的事件注册到调度中心,当该事件触发时候,发布者发布该事件到调度中心(顺带上下文),由调度中心统一调度订阅者注册到调度中心的处理代码;如下图二、程序详解(实现$watcher方法)一共三个js文件:index.js:用来遍历数据,并在数据对象的每个属性上添加getter和setter,当有数据变动的时候给通道发送一个notifydep.js:通道,用来连
起这么长的名字根本没有用
·
2019-11-02 00:36
vue源码分析
之骨架
运行时与编译时vue运行时和编译时的区别,编译时即增加了对于template的解析,而运行时假定你只是使用render函数进行编写,如果使用webpack的vue-loader他会自动把*.vue转换成render,所以只需要运行时就可以了,运行时比编译时减少30%vue模块vue分为核心模块和扩展模块,核心模块实现vue基础功能,扩展模块则根据不同的需求扩展不同的功能核心模块:core扩展模块:
dami.white
·
2019-10-06 11:00
vue源码分析
之nextTick
Vue中有个API是nextTick,官方文档是这样介绍作用的:将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。理解这部分内容,有助于理解Vue对页面的渲染过程,同时也可以了解到beforeUpdate和updated的使用。另外就是通过了解nextTick的调用了解vue内部是如何使用Promise的。这部分内容和之前介绍计算属性的内容也有关联,可以比照着看
Aria
·
2019-09-21 03:32
vue.js
javascript
vue源码分析
之计算属性
最近总被问道vue的计算属性原理是什么、计算属性是如何做依赖收集的之类的问题,今天用了一天时间好好研究了下源码,把过程基本捋顺了。总的来说还是比较简单。先明确一下我们需要弄清楚的知识点:computed属性如何初始化响应式属性的变化如何引起computed的重新计算弄清楚以上两点后对computed就会有一个比较全面的了解了。首先,需要弄明白响应式属性是怎么实现的,具体我会在其他文章中写,这里了解
Aria
·
2019-09-14 00:00
javascript
Vue源码分析
——生命周期
背景vue版本2.5.21本篇内容Vue的生命周期源码开始1.package.jsonscrpit内,npmrundev的命令:"dev":"rollup-w-cscripts/config.js--environmentTARGET:web-full-dev"其中rollup是一个打包工具,类似webpack。rollup:Rollup是一个JavaScript模块打包器,可以将小块代码编译成大
davidshi
·
2019-08-26 00:00
vue.js
生命周期
Vue源码分析
之Vue实例初始化详解
这一节主要记录一下:Vue的初始化过程以下正式开始:Vue官网的生命周期图示表重点说一下newVue()后的初始化阶段,也就是created之前发生了什么。initLifecycle阶段exportfunctioninitLifecycle(vm:Component){constoptions=vm.$options//locatefirstnon-abstractparentletparent=
shisanOnly
·
2019-08-25 11:19
Vue源码分析
(二) : Vue实例挂载
Vue源码分析
(二):Vue实例挂载author:@TiffanysBear实例挂载主要是$mount方法的实现,在src/platforms/web/entry-runtime-with-compiler.js
Tiffany的小熊
·
2019-07-22 11:00
Vue源码分析
(一) : new Vue() 做了什么
Vue源码分析
(一):newVue()做了什么author:@TiffanysBear在了解newVue做了什么之前,我们先对Vue源码做一些基础的了解,如果你已经对基础的源码目录设计等有基础的了解的话
Tiffany的小熊
·
2019-07-18 21:00
vue源码分析
系列:用sourcemap调试源码
由于前几篇文章是用vue-cli直接分析的,今天我们学习直接调试vue源码。安装vue(mac机)1.在GitHub上克隆官方的vue-地址2.安装依赖npminstall修改vue项目1.在package.jsonscriptdev增加--sourcemap指令"dev":"rollup-w-cscripts/config.js--environmentTARGET:web-full-dev--
开心大表哥
·
2019-06-12 11:36
vue项目开发
插件
基础加固
webpack
vue源码分析
系列四:createElement和update
createElementVue.js利用createElement方法创建VNode,它定义在src/core/vdom/create-elemenet.js中://wrapperfunctionforprovidingamoreflexibleinterface//withoutgettingyelledatbyflowexportfunctioncreateElement(context:C
开心大表哥
·
2019-06-10 16:22
vue项目开发
vue源码分析
系列三:render的执行过程和Virtual DOM的产生
render手写render函数,仔细观察下面这段代码,试想一下这里的createElement参数是什么。newVue({el:'#application',render(createElement){returncreateElement('div',{attrs:{id:'app1'//注意这里的id是app1了不是index.html中的application了}},this.value)
开心大表哥
·
2019-06-06 13:19
vue项目开发
基础加固
Vue 源码分析 -- 我该从哪里入手?
Vue源码分析
--我该从哪里入手?我想要读读源码,想要通过读一遍源码更好的理解Vue的特性,想要通过读一遍源码领略一下框架的风采。这个想法要求我必须完整的,全面的读一遍Vue的源码。
星辰361
·
2019-04-13 20:30
[
Vue源码分析
]Vue.use实现原理
最近小组有个关于
vue源码分析
的分享会,提前准备一下…前言:插件通常会为Vue添加全局功能,这个官网文档有说过了,如果对插件不了解,建议先阅读一下官网文档:https://cn.vuejs.org/v2
ECMAScripter
·
2019-03-22 23:03
Vue
源码分析
简易版本vue的实现
用了两年左右的vue,虽然看过vue的源码,推荐黄轶大佬的
vue源码分析
,相当到位。从头梳理了vue的实现过程。
rocky191
·
2019-03-05 00:00
vue.js
[
Vue源码分析
] 模板的编译
最近小组有个关于
vue源码分析
的分享会,提前准备一下…前言:Vue有两个版本:Runtime+Compiler、Runtimeonly,前者是包含编译代码的版本,后者不包含编译代码,编译过程需要借助webpack
ECMAScripter
·
2019-02-26 00:55
Vue
源码分析
Vue源码分析
[
Vue源码分析
]自定义事件原理及事件总线的实现
最近小组有个关于
vue源码分析
的分享会,提前准备一下…前言:我们都知道Vue中父组件可以通过props向下传数据给子组件;子组件可以通过向$emit触发一个事件,在父组件中执行回调函数,从而实现子组件与父组件的通信
ECMAScripter
·
2019-02-24 23:00
Vue
源码分析
vue源码分析
系列之响应式数据(三)
前言上一节着重讲述了initData中的代码,以及数据是如何从data中到视图层的,以及data修改后如何作用于视图。这一节主要记录initComputed中的内容。正文前情回顾在demo示例中,我们定义了一个计算属性。computed:{total(){returnthis.a+this.b}}本章节我们继续探究这个计算属性的相关流程。initComputed//initComputed(vm,
A_大白
·
2019-02-17 00:00
源码
vue.js
javascript
vue源码分析
系列之响应式数据(四)
前言上一节着重讲述了initComputed中的代码,以及数据是如何从computed中到视图层的,以及data修改后如何作用于computed。这一节主要记录initWatcher中的内容。正文demo修改之前的newVue(options)的options中,我们可以观察到computed,data,但是对于watch是没法演示的,所以我们在代码中加入一段可以观察到watch初始化以及效果的代
A_大白
·
2019-02-17 00:00
javascript
vue.js
源码
vue源码分析
系列之响应式数据(二)
前言接着上一篇的初始化部分,我们细看initData中做了什么。正文initDatafunctioninitData(vm:Component){letdata=vm.$options.data//获得传入的data.此处为{a:1,b:2}data=vm._data=typeofdata==='function'?getData(data,vm):data||{}//如果data不是纯对象,则打
A_大白
·
2019-02-13 00:00
源码
vue.js
javascript
vue源码分析
系列之响应式数据(一)
概述在使用vue的时候,data,computed,watch是一些经常用到的概念,那么他们是怎么实现的呢,让我们从一个小demo开始分析一下它的流程。demo演示代码片段html代码demoa:{{a}}b:{{b}}a+b:{{total}}a+1js代码vardemo=newVue({el:'#demo',data:{a:1,b:2,},computed:{total(){returnthi
A_大白
·
2019-02-13 00:00
javascript
vue.js
源码
[
Vue源码分析
] v-model实现原理
最近小组有个关于
vue源码分析
的分享会,提前准备一下…前言:我们都知道使用v-model可以实现数据的双向绑定,及实现数据的变化驱动dom的更新,dom的更新影响数据的变化。
ECMAScripter
·
2018-12-28 23:06
Vue
源码分析
v-model
JavaScript
Vue源码
Vue
源码分析
Vue源码分析
前端Vue 源码分析-逻辑层
Vue源码分析
-逻辑层预期的效果:监听input的输入,input在输入的时候,会触发watch与computed函数,并且会更新原始的input的数值。
易水人去丶明月如霜
·
2018-09-27 21:23
vue
vue源码分析
——path解析的状态机设计
varobj={a:{b:'hello',c:['Marry','Ella']}}对于对象a来说,我们使用‘a.b’就能获得字符串hello,那么vue是如何解析a.b的呢?vue.js是通过状态机管理来实现对路径的解析的。Vue将表达式的访问路径字符串解析成数组的形式,‘a.b’就解析成为['a','b'],通过obj[arr[0]][arr[1]]来获得属性值。源码中分别有四种操作,和9种状态
Ella_Yan
·
2018-07-22 18:02
Vue
Vue源码解析(笔记)
github
vue源码分析
认识flowflow类型检查安装flowsudonpminstall-gflow-bin初始化flowflowinit运行flow命令命令:flow在js文件中需要有需要有一下标志
爱lv行
·
2018-06-08 15:06
vue
vue源码分析
:渲染篇
一、前言Vue.js框架是目前比较火的MVVM框架之一,简单易上手的学习曲线,友好的官方文档,配套的构建工具,让Vue.js在2016大放异彩,大有赶超React之势。前不久Vue.js2.0正式版已出,在体积优化(相比1.0减少了50%)、性能提升(相比1.0提升60%)、API优化等各方面都更上一层楼;本文是系列文章,主要想通过对于Vue.js2.0源码的分析,从代码层面解析Vue.js的实现
Generon
·
2017-05-18 18:35
Vue源码
Vue源码分析
之Observer
碎碎念四月份真是慵懒无比的一个月份,看着手头上没啥事干,只好翻翻代码啥的,看了一会Vue的源码,忽而有点感悟,于是便记录一下。Vue中的观察者模式观察者模式一般包含发布者(Publisher)和订阅者(Subscriber)两种角色;顾名思义发布者负责发布消息,订阅者通过订阅消息响应动作了。回到Vue中,在Vue源码core/oberver目录下分析代码可以知道有三个类分别是Oberver,Wat
weixin_34363171
·
2017-04-13 20:52
javascript
100行代码理解和分析vue2.0响应式架构
以前写的那篇
vue源码分析
之如何实现observer和watcher可以作为本次分享的参考。不过不看也没关系,但是最好了解下Object.definePrope
杨川宝
·
2017-03-09 10:37
上一页
1
2
3
4
5
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他