Vue生命周期和MVVM框架
生命周期
组件从开始到结束的全过程
- 创建阶段:beforeCreate、created
- 挂载阶段:beforeMount、mounted
更新阶段:beforeUpdate、updated
- 销毁阶段:beforeDestroy、destroyed
与动态组件有关的两个特殊的钩子:
与组件异常捕获有关的一个钩子:
生命周期有哪些
- beforeCreate:声明methods方法,声明生命周期钩子
- created:注入provide数据,响应式劫持、把data上数据遍历后放在this上
- beforeMount:通过el/$mount/template找视图模板,把template视图模板编译成render() (render方法是用于创建虚拟DOM的)
- mounted:创建$el挂载节点,调用render()方法第一次生成虚拟DOM(Vnode是对真实视图结构的一种数据描述),Vue开始编译工作,循环递归,指令和声明式变量进行touch,依赖收集、通知Watcher第一次完成DOM渲染
- beforeUpdate:网页呈现在你的面前上,当各种事件交互触发data变化时
- updated:再次调用render()方法生成新的虚拟DOM(现在就有了两个虚拟DOM,执行patch运算(diff运算)找出两个虚拟DOM之间的最小差异(脏节点集合),通过一个队列进行异步更新。
- beforeDestroy:当调用$destroy()或路由切换时,即将进入销毁阶段
- destroyed:移除当前组件的Watcher(DOM将无法再更新了),拆卸掉所有的子组件,移除事件监听器(wacth等等)
const app = new Vue({
data () {
return {
num: 1
}
},
watch: {
num () {
console.log('--- num changed')
}
},
// 声明methods方法
// 声明生命周期钩子
beforeCreate () {
console.log('---beforeCreate')
},
// 注入provide数据
// 响应式劫持、把data上数据遍历后放在this上
created () {
console.log('---created')
// 调接口
},
// 通过el/$mount/template找视图模板
// 把template视图模板编译成render() (render方法是用于创建虚拟DOM的)
beforeMount () {
console.log('---beforeMount')
},
// 创建$el挂载节点
// 调用render()方法第一次生成虚拟DOM(Vnode是对真实视图结构的一种数据描述)
// Vue开始编译工作,循环递归,指令和声明式变量进行touch,依赖收集、通知Watcher第一次完成DOM渲染
mounted () {
console.log('---mounted')
// 调接口、开定时器、建立websocket长连接、echarts图表实例化、DOM/BOM操作。。。
},
// 网页呈现你的面前上,当各种事件交互触发data变化时
beforeUpdate () {
console.log('---beforeUpdate')
},
// 再次调用render()方法生成新的虚拟DOM(现在就有了两个虚拟DOM)
// 执行patch运算(diff运算)找出两个虚拟DOM之间的最小差异(脏节点集合),通过一个队列进行异步更新。
updated () {
console.log('---updated')
// updated在某些场景下,可以模拟出watch/$nextTick()的功能。
},
// 当调用$destroy()或路由切换时,即将进入销毁阶段
beforeDestroy () {
console.log('---beforeDestroy')
// 清除定时器、清除缓存
},
// 移除当前组件的Watcher(DOM将无法再更新了)
// 拆卸掉所有的子组件
// 移除事件监听器(wacth等等)
destroyed () {
console.log('---destroyed')
},
methods: {
add () {
console.log('---add')
this.num++
}
}
})
app.$mount('#app')
app.$mount('#app')和el:'#app'都是挂载到真实DOM中。
什么是虚拟DOM
虚拟DOM存在的价值点
什么是diff运算
什么是MVVM框架
网页本质 = M数据层 + V视图结构
Vue生命周期和MVVM框架的更多相关文章
- Vue生命周期,面试常见问题
一.对于MVVM的理解? MVVM 是 Model-View-ViewModel 的缩写.Model代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑.View 代表UI 组件,它负责将数 ...
- Vue生命周期学习
转自https://www.w3cplus.com/vue/vue-instances-and-life-cycles.html Vue实例虽然没有完全遵循MVVM模型,但Vue的设计无疑受到了它的启 ...
- vue生命周期的介绍
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- vue 生命周期
一 vue的生命周期如下图所示(很清晰) 二 vue生命周期的栗子 注意触发vue的created事件以后,this便指向vue实例,这点很重要 <!DOCTYPE html> <h ...
- 详解vue生命周期
vue生命周期 @(vue)[生命周期] 前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mounted这个挂载还不是很清楚的.放大之,对vue的生命周 ...
- 关于vue生命周期
官网给出的实例的生命周期图如下: beforeCreate(页面创建前),created(页面创建后),beforeMount(页面载入前),mounted(页面载入后),beforeUpdate(页 ...
- vue生命周期的理解
我从官网上下载了一张vue生命周期的图,接下来实际分析一波vue到底执行了什么东西. 1.我们在使用vue时必不可少的操作就是 var vm = new Vue({}),这样我们就创建了一个vue的实 ...
- 【Vue笔记】-- 详解vue生命周期
针对于Vue的生命周期进行详细的说明,方面加深对各个方法的引用. 引言: 前几天重新回顾vue官网时,看到vue的生命周期,想着自己用vue开发了快一年了,就总结总结vue知识,再次加深自己对vue的 ...
- 面试题之(vue生命周期)
在面试的时候,vue生命周期被考察的很频繁. 什么是vue生命周期呢? Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这 ...
随机推荐
- SpringBoot中异常处理
一.背景 在我们编写程序的过程中,程序中可能随时发生各种异常,那么我们如何优雅的处理各种异常呢? 二.需求 1.拦截系统中部分异常,返回自定义的响应. 比如: 系统发生HttpRequestMetho ...
- 羽夏 Bash 简明教程(下)
写在前面 该文章根据 the unix workbench 中的 Bash Programming 进行汉化处理并作出自己的整理,并参考 Bash 脚本教程 和 BashPitfalls 相关内容 ...
- DingtalkChatbot简单使用
DingtalkChatbot 前言:该项目配合钉钉机器人 ,手机用户可以通过面对面建群创建单人群聊然后在电脑端 ···->智能群助手->添加机器人->自定义-> 然后添加机器 ...
- 使用 VS Code + Markdown 编写 PDF 文档
背景介绍 作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 markdown 这个技能,使用 markdown 来编写并生成 PDF 文档将会是一个不错的体验,以下就介绍下如 ...
- unity---Lighting面板
打开Lighting面板 将天空盒改为别墅 图片转化为Cube 设置一个材质球
- awd平台搭建及遇到的问题
1.安装docker环境 a.使用的是ubuntu系统,通过sudo apt install docker.io进行docker得安装,此方式会自动启动docker服务. b.通过curl -s ht ...
- python之名称空间与函数对象
目录 名称空间 内置名称空间 全局名称空间 局部名称空间 名称的查找顺序 作用域 global关键字 nonlocal关键字 函数名的多种用法 函数的嵌套 名称空间 名称空间就是变量名与变量值绑定关系 ...
- [python][flask] Flask 图片上传与下载例子(支持漂亮的拖拽上传)
目录 1.效果预览 2.新增逻辑概览 3.tuchuang.py 逻辑介绍 3.1 图片上传 3.2 图片合法检查 3.3 图片下载 4.__init__.py 逻辑介绍 5.upload.html ...
- R数据分析:如何简洁高效地展示统计结果
之前给大家写过一篇数据清洗的文章,解决的问题是你拿到原始数据后如何快速地对数据进行处理,处理到你基本上可以拿来分析的地步,其中介绍了如何选变量如何筛选个案,变量重新编码,如何去重,如何替换缺失值,如何 ...
- Redis集群搭建 三主三从 docker版 急速搭建
最近学习了docker 发现使用docker搭建一个redis非常的简单接下来就是搭建步骤 1.首先清空一下容器 #清空所有容器docker rm -f $(docker ps -aq) 2.然后创 ...