源码
Hayden丶
这个作者很懒,什么都没留下…
展开
-
Vue源码学习之initState
Vue源码学习之initState这次学习的initState方法,这个方法应该是整个Vue实例初始化过程中最重要的方法之一了,我们经常使用的属性,包括像是data,props,methods,watch,computed等都是在这个方法中进行初始化的。该方法介于beforeCreate和created两个钩子之间,所以在beforeCreate的时候我们还无法访问到Vue实例上的data,pr...原创 2019-03-02 21:15:43 · 1191 阅读 · 0 评论 -
Vue源码学习之initInjections和initProvide
Vue源码学习之initInjections和initProvide在进行源码阅读之前先让我们了解一个概念:provide/inject,这个是Vue在2.2.0版本新增的一个属性,按照Vue官网的说法,它的作用是:这对选项需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。如果你熟悉 React,这与 React 的上下文...原创 2019-03-02 21:16:24 · 2230 阅读 · 0 评论 -
Vue源码学习之initEvents
Vue源码学习之initEventsinitLifecycle是Vue源码中core/instance/events.js下的一个函数,和上节的initLiftcycle一样,该函数也是在beforeCreate钩子之前调用,作用是初始化组件中的事件。下面让我们来进行代码分析。1、initEventsfunction initEvents (vm: Component) { // 存放事...原创 2019-03-02 21:17:09 · 1010 阅读 · 0 评论 -
Vuex源码分析
Vuex源码分析入口文件Vuex的入口文件为src/index.jsimport { Store, install } from './store'import { mapState, mapMutations, mapGetters, mapActions, createNamespacedHelpers } from './helpers'export default { St...原创 2019-03-02 21:17:50 · 190 阅读 · 0 评论 -
Webpack之模块加载
Webpack之模块加载webpack作为前端打包工具受到大多数的前端开发者的青睐,在使用webpack的过程我们通过webpack自带的模块化功能实现了项目代码的模块化,方便了我们管理和维护,那么webpack是怎么实现各个模块之间的划分和加载的呢?模块划分在了解模块加载之前,我们需要首先看下webpack是怎么将一个个文件划分为模块的。我们有一个入口文件index.js以及模块a.js、...原创 2019-03-03 11:52:46 · 506 阅读 · 0 评论 -
Vue源码学习之createElement
Vue源码学习之createElement在Vue应用开发中,我们大部分时间都是使用template来创建HTML,但是在一些场景中,我们可能会需要在js进行模板的编写及渲染,这时候我们就会用到Vue中的渲染函数render,像下面这样:Vue.component('renderTest', { render: function (createElement) { return c...原创 2019-03-03 11:53:24 · 926 阅读 · 0 评论 -
Vue中的Diff算法
Vue中的Diff算法本篇文章主要介绍Diff算法的思想和Vue中对Diff算法的基本实现。1. 为什么要用Diff算法由于在浏览器中操作DOM的代价是非常“昂贵”的,所以才在Vue引入了Virtual DOM,Virtual DOM是对真实DOM的一种抽象描述,不懂的朋友可以自行查阅相关资料。即使使用了Virtual DOM来进行真实DOM的渲染,在页面更新的时候,也不能全量地将整颗Vi...原创 2019-03-03 11:58:01 · 27030 阅读 · 8 评论