vue复习之生命周期函数与组件传值方法
###生命周期有哪些?分别做了些什么?
- beforeCreate: 开始创建vue实例
- created:此时进行了vue实例的配置:如获取了数据的obsever,data,方法,监听器,计算属性,监听属性。给实例开始了配置和属性。此阶段可以进行数据资源的获取。
- beforeMount:此时开始了计算实例的template模板,准备渲染和挂载,实例节点还未生成。
- mounted:vm节点已经生成,页面渲染结束。此时可以进行DOM节点的获取。
- beforeUpdate:这个节点主要视为更新做准备,通过Diff算法来计算生成虚拟DOM。
- updated:将虚拟节点打补丁到vue实例上,实现更新。这个阶段数据变化就会导致DOM更新,而DOM变化又会引起vue实例变化,所以开发不能在此次进行数据修改
- beforeDestory:开始准备销毁vue实例,此时vm还是可以访问。
- destoryed:销毁vue实例,销毁子组件实例,解绑所有的事件与属性,监听器等。这一步可以销毁所有可能还在的属性,如定时器等。
组件通信有哪些方法?
- props,$emit,子组件通过props接收,通过 emit响应返回数据
- vuex,
- $parent c h i l d r e n r e f , 父 组 件 通 过 children ref,父组件通过 childrenref,父组件通过children获取直接子组件,而子组件通过$parent获取直接父组件,而ref是直接获取组件实例。
- 非父子组件,bus. e m i t 设 置 属 性 , emit设置属性, emit设置属性,bus.$on获取组件,基本思想:通过一个公共组件来接收属性,属性名不能重复。
- a t t r s : 子 组 件 用 来 接 收 父 组 件 定 义 的 所 有 非 样 式 和 p r o p s 的 属 性 , attrs:子组件用来接收父组件定义的所有非样式和props的属性, attrs:子组件用来接收父组件定义的所有非样式和props的属性,lisenter:依赖监听父组件所有的事件。
- 祖孙组件:祖组件使用provide来提供属性,孙组件使用inject来接收。