博客
关于我
分析vue源码之生命周期
阅读量:529 次
发布时间:2019-03-08

本文共 1476 字,大约阅读时间需要 4 分钟。

文章的代码和大部分描述转载自:。感谢大佬总结分析的vue源码。这里做一个笔记学习(二次总结)

文章目录

生命周期

beforeCreate -> created

相关代码:

callHook(vm, "beforeCreate")initInjections(vm) // resolve injections before data/propsinitState(vm)initProvide(vm) // resolve provide after data/propscallHook(vm, "created")

initState:

  • 作用: 初始化 props、data、methods、watch、computed 等属性
  • 限制:beforeCreate 不能获取到 props,也不能调用 methods的函数。也不能访问 DOM 因为并没有渲染 DOM
  • 提示:要使用以上的props,data,methods,Dom等要等到created

beforeMount -> mounted

相关代码:

(略)

  • 作用:
    • beforeMount 开始渲染虚拟 dom
    • 这时候会执行一个 new Watcher 用来监听数据更新的
    • mounted 钩子函数的执行顺序也是先子后父(子组件的 mounted 先执行,在渲染父组件的 mounted 方法)。

beforeUpdate -> updated

相关代码:

export function mountComponent(vm: Component, el: ?Element, hydrating?: boolean): Component {     // ...  // we set this to vm._watcher inside the watcher's constructor  // since the watcher's initial patch may call $forceUpdate (e.g. inside child  // component's mounted hook), which relies on vm._watcher being already defined  new Watcher(    vm,    updateComponent,    noop,    {         before() {           if (vm._isMounted) {             callHook(vm, "beforeUpdate")        }      }    },    true /* isRenderWatcher */  )  // ...}
  • 作用:监听更新数据
  • 提示:
    • beforeUpdate 的执行时机是在渲染 Watcher 的 before 函数中
    • 有个判断 必须在组件挂载后才会执行这个方法

【重点】watch 的挂载是在 beforeMounted 的时候,而实际可以监听则是在 mounted 之后

beforeDestroy -> destroyed

相关代码:

(略)

  • 作用:
    • 销毁组件 从 parent$children 中删掉自身,删除 watcher
  • 提示:
    • 销毁自己的时候又会触发子组件的销毁,所以 destroy 钩子函数执行顺序是先子后父,和 mounted 过程一样

activated -> deactivated

eep-alive 组件的时候详细介绍

你可能感兴趣的文章
MySQL:判断逗号分隔的字符串中是否包含某个字符串
查看>>
MySQL:某个ip连接mysql失败次数过多,导致ip锁定
查看>>
Mysql:避免重复的插入数据方法汇总
查看>>
n 叉树后序遍历转换为链表问题的深入探讨
查看>>
nacos config
查看>>
NacosClient客户端搭建,微服务注册进nacos
查看>>
Nacos原理
查看>>
Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
查看>>
Nacos如何实现Raft算法与Raft协议原理详解
查看>>
Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
查看>>
nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
查看>>
nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
查看>>
Nacos编译报错NacosException: endpoint is blank
查看>>
NACOS部署,微服务框架之NACOS-单机、集群方式部署
查看>>
Nacos配置中心集群原理及源码分析
查看>>
nacos配置自动刷新源码解析
查看>>
Nacos集群搭建
查看>>
nacos集群搭建
查看>>
nagios安装文档
查看>>
name_save matlab
查看>>