创建周期:beforeCreate created beforeMount mounted
created -> 数据模型已经建立,可以访问data
mounted -> vue示例/组件挂载到真实DOM上了
更新周期:beforeUpdate updated
销毁周期:beforeDestroy destroyed
特殊情况:
当对组件使用了keep-alive, 那么会增加两个新钩子(actived和deactived),并且流程发生了改变:
第1次: beforeRouteEnter -> created -> actived -> deactived -> beforeRouteLeave
第1+n次: beforeRouteEnter -> actived -> deactived -> beforeRouteLeave
这样来看加了keep-alive永远只会触发一次created
路由钩子
在组件里面:
beforeRouteEnter beforeRouteUpdate beforeRouteLeave
在router实例:
router.beforeEach(to, from, next)
1) props和$emit
父->子:props属性
子->父:$emit
2) eventBus
创建一个Bus(本质是一个新的Vue实例,即Bus=new Vue() ),
利用Bus.$on()和 Bus.$emit() 完成订阅发布操作。
3) 第三方的订阅发布库
4) vuex
store中5个核心的属性
state
getters
mutations
actions
modules
store的核心API
store.dispatch()
store.commit()
区分commit和dispatch的使用场景:
在vuex中mutation只能处理同步任务,因此异步操作时要在action中处理(这里的action和redux的action不同,它是一个函数)。
commit()是提交mutation,mutation负责计算出新的状态
dispatch()是分发action,从而执行action中的异步操作。通常在action中的异步操作结束后要commit()。
在组件中使用,需要的API
mapState()
mapActions
6.Vue.use的实现原理
7.实现一个dialog组件
8.webpack相关 webpack打包到服务器的整个过程 webpack怎么配置多入口 怎么提高webpack构建速度 怎么使用webpack优化性能
9.vue项目怎么优化白屏时间
10.服务端渲染