<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./lib//Vue2.5.17.js"></script>
<script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
<link rel="stylesheet" href="./lib/bootstrap-3.3.7-dist/css/bootstrap.css">
</head> <body>
<div id="app">
<input type="button" value="修改msg数据" class="btn btn-primary" @click="changemsg">
<h3 id="title">{{ msg }}</h3>
</div> <script>
//创建vue实例
var vm = new Vue({
el : "#app",
data : {
msg : "ok"
},
methods : {
show(){
console.log("执行了show方法");
},
changemsg(){
this.msg = "No"
}
},
beforeCreate() { //这是遇到的第一个生命周期函数,表示实例完全被创建出来之前,会执行它。
// console.log(this.msg); undefined 说明此时未拿到data数据
// this.show() 报错 此时methods未被初始化
//结论,在beforeCreate生命周期函数执行的时候,data和methods中的数据都没有被初始化
},
created(){ //这是遇到的第二个生命周期函数
console.log(this.msg);
this.show();
//如果要调用methods中的方法或操作data中的数据,最早只能在created中去操作。
},
beforeMount(){ //这是遇到的第三个生命周期函数,表示模板已经在内存中编译完成了,但是尚未挂载到页面
console.log(document.getElementById("title").innerText); //{{ msg }}
//在beforeMount执行的时候,页面中的元素还没有被渲染出来,只是之前写的模板字符串
},
mounted(){ //这是遇到的第4个生命周期函数,表示内存中的模板已经挂载页面中。
console.log(document.getElementById("title").innerText); //ok
//注意:mounted是 《实例创建期间》 的最后一个生命周期函数,当执行完mounted就表示
//实例已经被完全创建好了,此时,如果没有后续操作,这个实例就在内存中。
}, //接下来是运行中的两个事件
beforeUpdate(){ //这时候,表示数据在被更新的时候界面还没有被更新,数据已经被更新了。
//console.log("界面上元素的内容是:" + document.getElementById("title").innerText);//ok
//console.log("data中的msg数据是:" + this.msg); //no
//当执行berforeUpdate的时候,页面中显示的数据还是旧数据,此时data数据中的数据是最新的,页面尚未和data的数据同步。
},
updated(){
console.log("界面上元素的内容是:" + document.getElementById("title").innerText);//no
console.log("data中的msg数据是:" + this.msg); //no
//updated 事件执行的时候,页面和data数据已经保持同步了,都是最新的。
}
//当执行beforeDestroy钩子函数的时候,Vue实例就已经从运行阶段,进入到了销毁阶段;
//当执行beforeDestroy的时候,实例身上所有的data和所有的methods以及过滤器,指令。。等处于可用的状态,此时,还没有真正执行销毁的过程
//当执行destroyed 钩子函数的时候,组件已经完全被销毁,所有的数据都不可用。
})
</script>
</body> </html>

Vue系列之 => 钩子函数生命周期的更多相关文章

  1. Vue钩子函数生命周期实例详解

    vue生命周期简介 Vue实例有一个完整的生命周期,也就是从开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程,我们称这是Vue的生命周期.通俗说就是Vue实例从创建到销毁 ...

  2. 【vue】钩子函数生命周期

    图1 图2: 图3 相关资料:http://www.zhimengzhe.com/Javascriptjiaocheng/236707.html    https://segmentfault.com ...

  3. Vue – 基础学习(1):对生命周期和钩子函的理解

    一.简介 先贴一下官网对生命周期/钩子函数的说明(先贴为敬):所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周 ...

  4. Vue 实例详解与生命周期

    Vue 实例详解与生命周期 Vue 的实例是 Vue 框架的入口,其实也就是前端的 ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进 ...

  5. 【微信小程序开发•系列文章六】生命周期和路由

    这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...

  6. React 函数生命周期

      React 函数生命周期基础 1 ,概念 在组件创建.到加载到页面上运行.以及组件被销毁的过程中,总是伴随着各种各样的事件,这些在组件特定时期,触发的事件,统称为组件的生命周期:* 2,组件生命周 ...

  7. vue学习(五)生命周期 的钩子函数

    生命周期的钩子函数 主要有以下几种 beforeCreate created beforeMount mounted beforeUpdate updated activated deactivate ...

  8. [前端] VUE基础 (5) (过滤器、生命周期、钩子函数)

    一.过滤器 过滤器分为局部过滤器和全局过滤器. 1.局部过滤器 <body> <div id="app"> </div> <script ...

  9. Vue入门系列(五)Vue实例详解与生命周期

    Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一)  http://www.cnblogs.com/gdsblog/p/78 ...

随机推荐

  1. 洛谷P3233 世界树 [HNOI2014] 虚树

    正解:虚树 解题报告: 传送门! 首先看到这种就要想到虚树这个是毫无疑问的QwQ 建虚树什么的都可以循规蹈矩地做,不说辣,具体可以看下虚树学习笔记什么的看下板子 但是建好虚树之后怎么搞还是有点儿讲究, ...

  2. Git 常用命令和统计代码量

    摘要 分享Git日常操作中常用的命令,分享如何统计在项目中贡献的代码量. 下面列出Git bash常用命令. 1. git clone **(项目地址) 克隆一个git项目到本地,将git项目拉取到本 ...

  3. eslint 在VSCode中不能使用

    在VSCode中安装号eslint插件,还是不能使用,还需安装 npm install eslint-plugin-promise --save-dev 我也不知道为什么?我现在只是用两天不到vsco ...

  4. 王者荣耀里拿个王者有啥了不起,有胆就来挑战一下ApsaraCache源码

    王者荣耀大家估计都玩的很溜吧,撸完代码开一局,只要不遇到个猪队友,拿个鲁班后羿估计你们都能爆掉对手的塔吧.大神们打个排位赛拿个王者就和吃饭夹菜一样简单... But...你们玩过Redis和Memca ...

  5. MySQL忘记root密码--不重启mysqd重置root密码

    先提个问题:如何不重启mysqld,且没有权限修改用户账号和权限的情况下,如何重新设置root密码?不知道没关系,在此之前我也是不知道如何操作的,先看看下面的几种重置root密码的方法. 1.skip ...

  6. UILabel部分文字可点击

    源代码:https://github.com/lyb5834/YBAttributeTextTapAction地址 如果想用富文本文件,可以参考的另外一篇博客; https://www.cnblogs ...

  7. react-native-image-picker iOS设置

    效果图,因为我用的是模拟器,所以拍照功能没有效果,不过可从相册选择,下面是具体的效果图 把react-native-image-picker添加到项目 yarn add react-native-im ...

  8. 20170719 Mysql 配置远端Mysql访问,增加表/存储过程

    -- 1 .在windows 环境中安装Mysql 会按照到默认的C盘当中,如何修改呢--? -- 2. 如何只安装客户端不安装Mysql 数据库服务  --? -- 3. 表的特殊列,默认采用函数值 ...

  9. Mac本如何卸载MySQL

    Mac本如何卸载MySQL 在Mac上卸载MySQL上一件非常麻烦的事,如果没有卸载干净,就会无法安装新的MySQL 怎样才能完全卸载MySQL呢?(包括所有数据库)    执行以下操作: #打开终端 ...

  10. vue-router-transiton

    <template> <transition name="slide-left" mode="out-in"> <router-v ...