IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 第九节.vue的生命周期 -> 正文阅读

[JavaScript知识库]第九节.vue的生命周期

生命周期

生命周期图解

在这里插入图片描述


基础代码

源码

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript">
		var Test={
			template:`
				<div>我是Test组件{{ msg }}</div>
			`,
			data(){
				return{
					msg:'Hello Vue'
				}
			},
		}
		new Vue({
			el:'#app',
			components:{
				Test
			},
			template:`
				<div>
					<test></test>
				</div>
			`,
			data(){
				return{}
			}
		})
	</script>
</body>
</html>

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SokykTC5-1630298740093)(images/11.gif)]


beforeCreate和created

源码

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript">
		var Test={
			template:`
				<div>我是Test组件{{ msg }}</div>
			`,
			data(){
				return{
					msg:'Hello Vue'
				}
			},
			//组件创建前
			beforeCreate(){
				console.log('组件创建前')
				console.log(this.msg)
			},
			//组件创建后
			created(){
				console.log('组件创建后')
				console.log(this.msg)
			}
		}
		new Vue({
			el:'#app',
			components:{
				Test
			},
			template:`
				<div>
					<test></test>
				</div>
			`,
			data(){
				return{}
			}
		})
	</script>
</body>
</html>

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a474ziGF-1630298740094)(images/11.gif)]


子传父

源码


效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a474ziGF-1630298740094)(images/11.gif)]


beforeMount和Mounted

源码

主程序

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript" src="main.js"></script>
</body>
</html>

Main.js

var Test={
			template:`
				<div>我是Test组件{{ msg }}</div>
			`,
			data(){
				return{
					msg:'Hello Vue'
				}
			},
			//Dom挂载前
			beforeMount(){
				console.log('Dom挂载前')
				console.log(document.body.innerHTML)
			},
			//Dom挂载后
			mounted(){
				console.log('Dom挂载后')
				console.log(document.body.innerHTML)
			}
		}
		new Vue({
			el:'#app',
			components:{
				Test
			},
			template:`
				<div>
					<test></test>
				</div>
			`,
			data(){
				return{}
			}
		})

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a474ziGF-1630298740094)(images/11.gif)]


beforeUpdate和updated

源码

主程序

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript" src="main.js"></script>
</body>
</html>

main.js

var Test={
			template:`
				<div>
				我是Test组件{{ msg }}
				<button @click='msg+="1"'>msg+1</button>
				</div>
			`,
			data(){
				return{
					msg:'Hello Vue'
				}
			},
			// 基于数据更新前
			beforeUpdate(){
				console.log('数据更新前')
				console.log(document.body.innerHTML)
			},
			// 基于数据更新后
			updated(){
				console.log('数据更新后')
				console.log(document.body.innerHTML)
			}
		}
		new Vue({
			el:'#app',
			components:{
				Test
			},
			template:`
				<div>
					<test></test>
				</div>
			`,
			data(){
				return{}
			}
		})

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a474ziGF-1630298740094)(images/11.gif)]


beforeDestroy和destroyed

源码

主程序

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript" src="main.js"></script>
</body>
</html>

main.js

var Test={
			template:`
				<div>
				我是Test组件{{ msg }}
				<button @click='msg+="1"'>msg+1</button>
				</div>
			`,
			data(){
				return{
					msg:'Hello Vue'
				}
			},
			//组件创建前
			beforeCreate(){
				console.log('组件创建前')
				console.log(this.msg)
			},
			//组件创建后
			created(){
				console.log('组件创建后')
				console.log(this.msg)
			},
			//销毁前
			beforeDestroy(){
				console.log('销毁前')
			},
			//销毁后
			destroyed(){
				console.log('销毁后')
			}
		}
		new Vue({
			el:'#app',
			components:{
				Test
			},
			template:`
				<div>
					<test v-if='testshow'></test><br>
					<button @click='clickbut'>销毁组件</button>
				</div>
			`,
			data(){
				return{
					testshow:true
				}
			},
			methods:{
				clickbut(){
					this.testshow=!this.testshow
				}
			}
		})

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a474ziGF-1630298740094)(images/11.gif)]


性能调优:一个组件经常插入销毁会影响性能,改进方法

源码

主程序

<!DOCTYPE html>
<html>
<head>
	<title></title>
</head>
<body>
	<div id="app"></div>
	<script type="text/javascript" src="vue.js"></script>
	<script type="text/javascript" src="main.js"></script>
</body>
</html>

main.js

var Test={
			template:`
				<div>
				我是Test组件{{ msg }}
				<button @click='msg+="1"'>msg+1</button>
				</div>
			`,
			data(){
				return{
					msg:'Hello Vue'
				}
			},
			//组件创建前
			beforeCreate(){
				console.log('组件创建前')
				console.log(this.msg)
			},
			//组件创建后
			created(){
				console.log('组件创建后')
				console.log(this.msg)
			},
			//销毁前
			beforeDestroy(){
				console.log('销毁前')
			},
			//销毁后
			destroyed(){
				console.log('销毁后')
			},
			//组件停用
			deactivated(){
				console.log('组件停用')
			},
			//组件激活
			activated(){
				console.log('组件激活')
			}
		}
		new Vue({
			el:'#app',
			components:{
				Test
			},
			template:`
				<div>
					<keep-alive><test v-if='testshow'></test></keep-alive><br>
					<button @click='clickbut'>销毁组件</button>
				</div>
			`,
			data(){
				return{
					testshow:true
				}
			},
			methods:{
				clickbut(){
					this.testshow=!this.testshow
				}
			}
		})

效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a474ziGF-1630298740094)(images/11.gif)]

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:22:02  更:2021-08-31 15:23:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:12:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码