2019年8月8日

摘要:var foo = function(){ alert(1) } function foo(){ alert(2) } foo()会输出1 这是因为function foo()这种写法会在程序执行前的预处理中赋值, 而var foo = function()会再一次声明foo、再一次赋值 把var 阅读全文
posted @ 2019-08-08 11:53 chuliang 阅读(577) 评论(0) 推荐(0) 编辑
 

2019年7月14日

摘要:Vue.component一个组件和写在options的components属性中这个区别别的文章中讲,现在只讨论开始就是new Vue的情况 _init方法中,初始化一系列的东西,给vm赋值了各种属性,到最后判断 如果有el属性,那么开始把虚拟节点挂载,转化成真实节点。所以new Vue中的el属 阅读全文
posted @ 2019-07-14 14:34 chuliang 阅读(300) 评论(0) 推荐(0) 编辑
 

2019年6月29日

摘要:1、这个过程发生在spring工厂refresh方法的invokeBeanFactoryPostProcessors中,取出ConfigurationClassPostProcessor这个BeanFactoryPostProcessors(也是一个BeanDefinitionRegistry类型) 阅读全文
posted @ 2019-06-29 19:13 chuliang 阅读(453) 评论(0) 推荐(0) 编辑
 

2019年6月26日

摘要:watch是为vm的属性(已经在initData方法中被重写get和set方法)的get方法中多收集了一个watcher 具体分析: 对每一个watch中的属性,根据方法的key和handler,执行createWatcher 方法。 这里注意 new了一个Watcher,cb是之前的handler 阅读全文
posted @ 2019-06-26 20:33 chuliang 阅读(668) 评论(0) 推荐(0) 编辑
 

2019年6月2日

摘要:比如下面这种写法 <div id='app'> <shop><div>金拱门</div></shop> </div> 金拱门三个字是显示不出来的,显示的会是shop组件的template的内容。但是我们用element-ui组件的时候,会发现很多地方是能直接显示出来的,比如el-button按钮上的 阅读全文
posted @ 2019-06-02 11:26 chuliang 阅读(367) 评论(0) 推荐(0) 编辑
 

2019年5月23日

摘要:比如下面的例子: v3++,因为v3的get方法中收集了v2的watcher和render的watcher到自己的闭包中,所以++的时候的set方法会导致v2的dirty为true,并重新render 但是注意v3的闭包中也有v1的watcher,因为v2的get方法被重写了,页面上显示v1的时候, 阅读全文
posted @ 2019-05-23 07:58 chuliang 阅读(533) 评论(0) 推荐(0) 编辑
 

2019年4月25日

摘要:比如el-upload中的 :on-success= fn,其实是给组件el-upload传递一个prop,这样写的话fn只能接受upload组件规定的参数,如果想自己传递父组件中的参数比如b,要写成:on-success= ()=>{fn2(b)} 原理要从Vue的render函数的生成讲起 第一 阅读全文
posted @ 2019-04-25 18:09 chuliang 阅读(4774) 评论(1) 推荐(2) 编辑
 

2019年4月21日

摘要:天地初开就是new Vue(options),里面就一句话 this._init(options); (Vue.prototype.init 的赋值在initMixin(Vue)方法里) _init方法里: initInternalComponent 和mergeOptions方法是合并option 阅读全文
posted @ 2019-04-21 12:40 chuliang 阅读(172) 评论(0) 推荐(0) 编辑
 

2019年4月18日

摘要:computed属性的意义:如果组件渲染生成虚拟节点的过程中,需要通过一个方法计算得到某个返回值,可以在渲染的时候直接调用这个方法,但是如果这次的渲染不是由方法所依赖的变量值的变化导致的,那么再计算一次就没有必要。 computed的每个属性(假设为c)会被挂载在vm上,为c新建一个对应的watch 阅读全文
posted @ 2019-04-18 18:34 chuliang 阅读(115) 评论(0) 推荐(0) 编辑
 

2019年2月10日

摘要:initData >observe(data)做的事情是: data的__ob__指向一个observer,observer中有一个Dep 一、如果data是一个普通对象(非数组),遍历其属性(比如a),重写a的get和set方法,get方法的闭包中有两个重要属性: 1、一个Dep类型的属性(简称g 阅读全文
posted @ 2019-02-10 22:36 chuliang 阅读(1506) 评论(0) 推荐(0) 编辑