Przeglądaj źródła

Merge branch 'master' of https://github.com/HcySunYang/vue-design

HcySunYang 7 lat temu
rodzic
commit
79e7fb78b0
1 zmienionych plików z 3 dodań i 3 usunięć
  1. 3 3
      docs/art/8vue-reactive-dep-watch.md

+ 3 - 3
docs/art/8vue-reactive-dep-watch.md

@@ -269,7 +269,7 @@ const new Vue({
 </script>
 ```
 
-上面代码中,挂载元素是一个 `id` 为 `foo` 的 `div` 元素,而组件模板是一个 `id` 为 `bar` 的 `div` 元素。那么大家思考一个问题:`vm.$el` 的值应该是哪一个 `div` 元素的引用?答案是:**`vm.$el` 是 `id` 为 `bar` 的 `div` 的引用**。这是因为 `vm.$el` 始终是组件模板的根元素。由于我们传递了 `template` 选项指定了模板,那么 `vm.$el` 自然就是 `id` 为 `bar` 的 `div` 的引用。假设我们没有传递 `template` 选项,那么根据我们前面的分析,`el` 选项指定的挂载点将被作为组件模板,这个时候 `vm.$el` 则是 `id` 为 `foo` 的 `div` 元素的引用。
+上面代码中,挂载元素是一个 `id` 为 `foo` 的 `div` 元素,而组件模板是一个 `id` 为 `bar` 的 `div` 元素。那么大家思考一个问题:`vm.$el` 的值应该是哪一个 `div` 元素的引用?答案是:**`vm.$el` 是 `id` 为 `bar` 的 `div` 的引用**。这是因为 `vm.$el` 始终是组件模板的根元素。由于我们传递了 `template` 选项指定了模板,那么 `vm.$el` 自然就是 `id` 为 `bar` 的 `div` 的引用。假设我们没有传递 `template` 选项,那么根据我们前面的分析,`el` 选项指定的挂载点将被作为组件模板,这个时候 `vm.$el` 则是 `id` 为 `foo` 的 `div` 元素的引用。
 
 再结合 `mountComponent` 函数体的这句话:`vm.$el = el`,有的同学就会有疑问了,这里明明把 `el` 挂载元素赋值给了 `vm.$el`,那么 `vm.$el` 怎么可能引用的是 `template` 选项指定的模板的根元素呢?其实这里仅仅是暂时赋值而已,这是为了给虚拟DOM的 `patch` 算法使用的,实际上 `vm.$el` 会被 `patch` 算法的返回值重写,为了证明这一点我们可以打开 `src/core/instance/lifecycle.js` 文件找到 `Vue.prototype._update` 方法,如下高亮代码所示:
 
@@ -506,9 +506,9 @@ if (options) {
 
 默认情况下当数据变化时不会同步求值并执行回调,而是将需要重新求值并执行回调的观察者放到一个异步队列中,当所有数据的变化结束之后统一求值并执行回调,这么做的好处有很多,我们后面会详细讲解。
 
-* `options.before`,可以理解为 `Watcher` 实例的钩子,当数据变化之后触发更新之前调用
+* `options.before`,可以理解为 `Watcher` 实例的钩子,当数据变化之后触发更新之前调用
 
-在创建渲染函数的观察者实例对象时传递 `before` 选项,如下高亮代码:
+在创建渲染函数的观察者实例对象时传递 `before` 选项,如下高亮代码:
 
 ```js {2-6}
 new Watcher(vm, updateComponent, noop, {