vue-router 源码阅读笔记

# vue-router 源码阅读笔记

# mixin了一个方法

  • 保证每个组件上,都能挂载vue-router的实例。
Vue.mixin({
	beforeCreate() {

	}
})

# $route

  • 定义_route属性,来实现响应式,使用Vue提供的方法。
  • Vue.util.defineReactive(this,'_route', this.router.history.current)
    • 需要测试下这个方法是否会触发更新,看下官网api
  • 每次修改都是修改_route属性。 history上进行监听路由变化,每次变化后,重新赋值,实现根实例的更新。

# router-view

  • 渲染的时候,需要做循环判断,不断的判断是否有父节点。
  • 从最外层开始渲染,一直到最内层。

# 编码心得

  • 使用空对象的时候,使用Object.create(null)代替{}{}会有__proto__,另外一个没有,性能更好更纯粹?