生命周期的钩子函数 主要有以下几种

beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroy
destroyed
errorCaptured * 不经常用我们这里不介绍

具体介绍 看代码

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width ,initial-scale=1">
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
</head>
<body> <div id="app">
<!--用子-->
<App></App>
</div> <script>
// 全局组件
Vue.component('Vlife', {
// 组件中的data一定是一个函数
data() {
return {
msg: '生命周期'
}
},
methods: {
handlerClick() {
this.msg = '晓强'
}
},
template: `<div>
<button @click="handlerClick">改变(beforeUpdate和Update)</button>
{{msg}}
</div>`,
beforeCreate() {
console.log('组件创建之前', this.$data)
},
created() {
// 非常重要的事情,在此时发送ajax 请求后端的数据 然后赋值给msg
console.log('组件创建完成', this.$data)
},
beforeMount() {
// 在挂载开始之前被调用 实际是还没有被加载出来
console.log('DOM在挂载之前', document.getElementById('app'))
},
mounted() {
// DOM挂载完成 也可以这发送 ajax 网页图片处
console.log('DOM挂载完成', document.getElementById('app'))
},
beforeUpdate() {
// 改变当前的元素 有个按钮在Vlife里[获取原始的DOM]
console.log('更新之前的DOM', document.getElementById('app').innerHTML)
},
updated() {
// 获取最新的DOM
console.log('更新完成之后的DOM', document.getElementById('app').innerHTML)
},
beforeDestroy() {
// 销毁之前 在父组件中
console.log('销毁之前')
},
destroyed() {
// 销毁之后
console.log('销毁之后')
},
activated() {
// 激活 这两个方法要配合 keep-alive 保持活跃状态相当于把组件放在一个缓存中
// 可以用在一个页面退回到另一个页面 还保持原来的状态
console.log('组件被激活了')
},
deactivated() {
// 停用 这两个方法要配合 keep-alive 保持活跃状态相当于把组件放在一个缓存中
console.log('组件被停用了') },
}); // 生子
const App = {
data() {
return {
isShow: true
}
},
methods: {
clickHandler() {
this.isShow = !this.isShow
}
},
template: `<div>
<!--<Vlife v-if="isShow"></Vlife>-->
<keep-alive><Vlife v-if="isShow"></Vlife></keep-alive>
<button @click="clickHandler">改变组件的生死(beforeDestroy)</button>
</div>`
}; let app = new Vue({
el: '#app',
data: {},
template: ``,
// 挂子
components: {
App
}
})
</script>
</body>
</html>

最新文章

  1. ASP.NET MVC传递参数(model)
  2. CentOS系统中基于Apache+php+mysql的许愿墙网站的搭建
  3. Android 数据传递(一) Activity之间的数据传递
  4. 【redis使用全解析】常见运维操作
  5. Double和double的区别
  6. Clusterware后台进程
  7. Android下Fragment的动画切换效果
  8. android错误 Android NAND: nand_dev_load_disk_state,
  9. C# 引用类型的&quot;祸害&quot;
  10. C#网络编程简单实现通信小例子-2
  11. nginx+tomcat动静分离的核心配置
  12. MongoDB 模糊查询,及性能测试
  13. HDU 4508 沼泽湿地系列故事——记住减肥I (2013腾讯编程马拉松预赛第一)
  14. 基于ARM的车牌识别技术研究与实现
  15. 设计模式之“Decorator”注疏#02
  16. ZooKeeper之(六)应用实例
  17. 使用Docker镜像和仓库
  18. python小白——进阶之路——day1天---认识python和变量、注释
  19. 使用Django创建网站项目&lt;二&gt;
  20. WPF Blend 脑洞大开的问题:如何用Blend得到或画出一个凹槽、曲面。

热门文章

  1. java并发AtomicIntegerFieldUpdater
  2. node服务端口被占用
  3. Oracle数据库自带了decode()函数
  4. Vmware tools变灰不能点击的问题
  5. 「NOIP2016」愤怒的小鸟
  6. Python数据分析在互联网寒冬下,数据分析师还吃香吗?
  7. MySQL序列解决方案
  8. 题解 P3258 【[JLOI2014]松鼠的新家】
  9. 命令打开java控制面板
  10. 二、Linux目录结构&amp;常用指令