插槽
普通插槽:在父组件编译和渲染阶段生成vnodes,所以数据的作用域是父组件实例,子组件渲染的时候直接拿到这些渲染好的vnodes。
作用域插:父组件在编译和渲染阶段并不会直接生成vnodes,而是在父节点vnode的data中保留一个scopedSlots对象,存储着不同名称的插槽以及它们对应的渲染函数,只有在渲染子组件阶段才会执行这个渲染函数生成vnodes
动画
transition-group 组件是为了做列表的过渡,它会渲染成真实的元素。
当我们去修改列表的数据的时候,如果是添加或者删除数据,则会触发响应元素本身的过渡动画,这点和<transition>组件实现效果一样,除此之外<transtion-group>还实现了move的过渡效果,让我们的列表过渡动画更加丰富。
vue-router
Vue编写插件的时候通常要提供静态的install方法。
Vue-Router的install方法会给每一个组件注入beforeCreated和destoryed钩子函数,在beforeCreated做一些私有属性定义和路由初始化工作。
路由初始化的时机是在组件的初始化阶段,执行到beforeCreate钩子函数的时候回执行router.init方法,然后又会执行history.transitionTo方法做路由过渡。
createMatcher的初始化就是根据路由的配置描述创建映射表,包括路径,名称到路由record的映射关系
match会根据传入的位置和路径计算出新的位置,并匹配到对应的路由record,然后根据新的位置和record创建新的路径并返回