<!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. ubuntu物理机上搭建Kubernetes集群 -- master 配置

    1. 将  kube-apiserver, kube-controller-manager, kube-scheduler,kubectl 拷贝到/usr/bin目录下 2. 安装etcd sudo ...

  2. eclipse debug模式

    eclipse debug模式 1.怎样在Eclipse中设置断点 方法/步骤 1 首先打开工程项目 2 第一种是,把鼠标移动想要设置断点的行,在行号前面空白地方双击,就会出现断点 3 第二种是,在菜 ...

  3. 《linux 文件目录》- touch/rm/mv/cat/head/tail/cp/mkdir/chmod/chown/find/locate/which/whereis

    一:基本 / 根目录下目录结构定义 /bin 常见的用户指令 ls/echo ...... 等 /boot 内核和启动文件 /dev 设备文件 /etc 系统和服务配置文件 /home 用户家目录 / ...

  4. java IO(二)大文件复制

    package cn.sasa.demo3; import java.io.FileInputStream; import java.io.FileOutputStream; import java. ...

  5. sql-server数据库常用语句

    查看所有数据库名 select name from master..Sysdatabases order by name; 查看当前数据所有表 select name from sysobjects ...

  6. 五、Docker

    1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像: 运行中的这 ...

  7. CentOS 系列安装 Docker

    CentOS6对于 CentOS6,可以使用 EPEL 库安装 Docker,命令如下$ sudo yum install http://mirrors.yun-idc.com/epel/6/i386 ...

  8. mysql 初识sql语句

    有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱出来,专注于对程序逻辑的编写 mysql服务端软件即mysqld帮我们管理好文件夹以及文件,前提是作为使用者的我们,需要下载mysql的 ...

  9. entry.define编程思路

    0.lua将文字传给场景脚本. 1.场景脚本将pattern.define文件中的PAT当作子弹(水泡弹,带颜色) 2.用户的问题作为客户端的请求,发送给服务器端 3.服务器端接受客户端的问题请求 4 ...

  10. 【4】axios 获取数据

    API:https://www.kancloud.cn/yunye/axios/234845 基于axios进行二次封装 安装axios npm install axios --save 安装成功 [ ...