vuejs页面跳转_【Vue 学习】 VueJS 生命周期
一、概述
Vue 的生命周期可以分为 8 个生命周期的执行点,从 new 创建 Vue 对象到对象的销毁,其中 4 个基本的,4 个特殊的,在下图中,红色标注的就是 8 个生命周期的执行点,前四个为基本的,后四个为特殊的
四个基本执行点(数据加载):
beforeCreadted:
实例组件刚创建,元素DOM和数据都还没有初始化,loading事件
created:
数据data已经初始化完成,方法也已经可以调用,但是DOM为渲染。在这个周期里面如果进行请求是可以改变数据并渲染,由于DOM未挂载,请求过多或者占用时间过长会导致页面线上空白。
beforeMount:
DOM未完成挂载,数据也初始化完成,但是数据的双向绑定还是显示{{}},这是因为Vue采用了Virtual DOM(虚拟Dom)技术。先占住了一个坑。
mounted:
数据和DOM都完成挂载,在上一个周期占位的数据把值给渲染进去。一般请求会放在这个地方,因为这边请求改变数据之后刚好能渲染。
四个特殊执行点(数据更新):
beforeUpdate:
只要是页面数据改变了都会触发,数据更新之前,页面数据还是原来的数据,当你请求赋值一个数据的时候会执行这个周期,如果没有数据改变不执行。
updated:
只要是页面数据改变了都会触发,数据更新完毕,页面的数据是更新完成的。beforeUpdate和updated要谨慎使用,因为页面更新数据的时候都会触发,在这里操作数据很影响性能和容易死循环。
beforeDestroy:
这个周期是在组件销毁之前执行,在我项目开发中,觉得这个其实有点类似路由钩子beforeRouterLeave,都是在路由离开的时候执行,只不过beforeDestroy无法阻止路由跳转,但是可以做一些路由离开的时候操作,因为这个周期里面还可以使用data和method。比如一个倒计时组件,如果在路由跳转的时候没有清除,这个定时器还是在的,这时候就可以在这个里面清除计时器。
destroyed:
组件销毁时触发,vue实例解除了事件监听以及和dom的绑定(无响应了),但DOM节点依旧存在 组件销毁时进行提示
二、代码实例
在代码编写中,每一个执行过程都有对应的函数事件
!DOCTYPE htmlhtmlheadmeta charset=\"utf-8\" /title/titlescript src=\"js/vuejs-2.5.16.js\"<>/script/headbodydiv id=\"app\"/div/bodyscript/script/html
<html> <head> <meta charset="utf-8" /> <title>vuejs生命周期title> <script src="js/vuejs-2.5.16.js">script> head> <body> <div id="app"> {{message}} div> body> <script> var vm = new Vue({ el: "#app", data: { message: 'hello world' }, beforeCreate: function() { console.log(this); showData('创建vue实例前:beforeCreate', this); }, created: function() { showData('创建vue实例后:created', this); }, beforeMount: function() { showData('挂载到dom前:beforeMount', this); }, mounted: function() { showData('挂载到dom后:mounted', this); }, beforeUpdate: function() { showData('数据变化更新前:beforeUpdate', this); }, updated: function() { showData('数据变化更新后:updated', this); }, beforeDestroy: function() { vm.test = "3333"; showData('vue实例销毁前:beforeDestroy', this); }, destroyed: function() { showData('vue实例销毁后:destroyed', this); } }); function realDom() { console.log('真实dom结构:' + document.getElementById('app').innerHTML); } function showData(process, obj) { console.log(process); console.log('data 数据:' + obj.message) console.log('挂载的对象:') console.log(obj.$el) realDom(); console.log('------------------') console.log('------------------') } //vm.message = "good..."; vm.$destroy();script>html>
!DOCTYPE htmlhtmlheadmeta charset=\"utf-8\" /title/titlescript src=\"js/vuejs-2.5.16.js\"<>/script/headbodydiv id=\"app\"/div/bodyscript/script/html
运行后按 F12,点 Console,可以看到加载时数据的变化
当修改数据后,比如将上面代码注释打开,改变 message 的值,运行后按 F12,点 Console,可以看到加载时数据的变化:
vuejs页面跳转_【Vue 学习】 VueJS 生命周期相关推荐
- vue学习之生命周期,钩子函数执行顺序
vue的生命周期,钩子函授执行顺序 一般的执行顺序(从上往下): beforeCreate 在实例初始化之后,数据观测(data observer) 和 event/watcher 事件配置之前被调用 ...
- python 全栈开发,Day91(Vue实例的生命周期,组件间通信之中央事件总线bus,Vue Router,vue-cli 工具)...
昨日内容回顾 0. 组件注意事项!!!data属性必须是一个函数!1. 注册全局组件Vue.component('组件名',{template: ``})var app = new Vue({el: ...
- 计算属性与监听器、Vue 实例的生命周期
本文是我在学习过程中记录学习的点点滴滴,仅仅为了学完之后巩固一下,日后忘记了也可以方便快速的复习. 计算属性与监听器.Vue 实例的生命周期 前言 一.计算属性 1.1.计算属性初步理解 1.2.计算 ...
- Vue实例的生命周期
vue实例的生命周期 什么是生命周期:从Vue实例创建.运行.到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期! 生命周期钩子:就是生命周期事件的别名而已: 生命周期钩子 = 生命周期函 ...
- React学习:生命周期、过滤器、event、axios-学习笔记
文章目录 React学习:生命周期.过滤器.event.axios-学习笔记 生命周期 过滤器 webapp小例子: event - 和原生JavaScript写法一样的 axios React学习: ...
- 第五节:轻松掌握 vue 实例的生命周期
公众号后台收到不少同学催更新,马上来. 上两节我们都是讲vue的实例,简单创建和定义实例的4个常用选项,没看过的伙伴可以先去看上两节,按顺序学习比较容易掌握. 这一节我们学习vue实例的生命周期,没错 ...
- Vue父子组件生命周期
Vue父子组件生命周期 Vue实例需要经过创建.初始化数据.编译模板.挂载DOM.渲染.更新.渲染.卸载等一系列过程,这个过程就是Vue的生命周期,Vue中提供的钩子函数有beforeCreate.c ...
- 7、Vue实例的生命周期钩子(created、mounted、updated、destoryed)
1.Vue实例 new Vue()创建一个Vue实例 所有的组件其实都是Vue实例 2.Vue实例的生命周期钩子 每个Vue实例在被创建时都要经过一系列的初始化过程 初始化过程 created() 组 ...
- vue组件的生命周期和执行过程
Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...
最新文章
- [JAVA EE] JPA技术基础:完成数据列表显示
- Science:一种新型玻璃,有望让手机告别碎屏!
- 写出漂亮 Python 代码的 20条准则
- 关于VS2017使用中常见的几个问题
- 【题解】Luogu SP1435 PT07X - Vertex Cover
- SpringBoot使用JdbcTemplate案例(学习笔记)
- SQL查询语句 select
- 自动化测试框架的搭建
- C++---内联函数与宏
- 安装MySQL-python时发生错误:error: command 'gcc' failed with exit status 1
- 小程序下载PDF等类型文件并保存到本地
- 最优化学习 数值优化的例子:实现最小二乘法
- css宋体代码_css中宋体怎么设置?
- 水经注叠加cad_如何下载矢量格式的CAD等高线
- HaaS EDU场景式应用整体介绍
- python无限循环怎么结束,python的无限循环及退出
- Oracle中rank函数详解
- 基于Java Servlet图片服务器
- 《古诗词里的快意人生》读后感
- Vue卡列表中不同卡片显示不同背景颜色
热门文章
- Total Physical Response TPR
- 阅读宋立恒《AI制胜:机器学习极简入门》第2章:机器学习中的数据预处理
- Python学习笔记:创建分数类
- 将2019拆分成三个整数的平方和
- oracle date引入哪个包,oracle 索引字段包含date类型,使用spring jdbc更新时不走索引,而是走table access full的问题...
- 2017.9.6 音量调节 思考记录
- 安卓一步一步搭建组件化
- 实时体积云渲染(地平线):二.Perlin噪声和Worley噪声
- springboot 日志级别_SpringBoot实战(十三):Admin动态修改日志级别
- android 底部圆角,android 实现部分圆角图片