前端(day05)Vue,Vue的钩子函数created:

前端面试题 Vue 中的 生命函数(钩子函数) 一,生命周期(钩子函数) 的简介 生命周期函数 又叫 钩子函数, 像它的名字一样,这也是个函数,与其他 methods 中定义的函数不同的是,Vue 中已经规定好了他的触发条件,而这些不同的触发条件就是 一个 Vue 文件从初始化到删除关闭必定经历的一些时间点,而我们就可以通过这些时间点进行各种操作 常用的钩子函数分为四类: 初始化 beforeCreate created 挂载 beforeMount mounted 更新 bef... 阅读详情

Vue  

概念:一套构建用户界面的渐进式前端框架

1.创建一个HTML文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

</body>
</html>

2. 引入Vue.js

<script src="../day03/vue.js"></script>

3.创建一个Vue实例

<script type="text/javascript">
			var config={
				"el":"#app",
				"data":{
					"msg":"hello vue"
				},
				"methods":{
					test1(){
						document.write("定义的方法")
					}
				}
			}

说明:

  • el: '#vue':绑定元素的ID
  • data:{message:'Hello Vue!'}:数据对象中有一个名为message的属性,并设置了初始值 Hello Vue!

4. 将数据绑定到页面元素

<div id="app">	
</div>

完整代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">	
		</div>
		<script src="../day03/vue.js"></script>
		<script type="text/javascript">
			var config={
				"el":"#app",
				"data":{
					"msg":"hello vue"
				},
				"methods":{
					test1(){
						document.write("定义的方法")
					}
				}
			}
			var vu=new Vue(config);
			vu.test1();
		</script>
	</body>
</html>

vue的指令

v-html:给标签设置文本

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<a href="https://www.baidu.com/" v-html="msg"></a>
		</div>
		<script src="../day03/vue.js">
			
		</script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"msg":"点击我",
				},
			})
		</script>
	</body>
</html>

v-bind:给标签的属性赋值,作用和:一样

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<a v-bind:href="url" >点击我</a>
		</div>
		<script src="../day03/vue.js">
			
		</script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"url":"https://www.baidu.com/",
				},
			})
		</script>
	</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div>
    <!--:属性名=变量 让元素的属性和变量进行绑定-->
    <input type="text" :value="info">
    <input type="text" v-bind:value="info">

    <a :href="url">超链接</a>
    <img :src="imageName" alt="">
</div>
<!--引入网络版的Vue框架 Vue插件才会正常工作-->
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
    new Vue({
        el: "div",
        data: {
            info: "属性绑定",
            url:"http://www.baidu.com",
            imageName:"head.jpg"
        }
    })
</script>
</body>
</html>

v-if,v-else,v-else-if:条件指令,写条件表达式,如果条件不成立,删除标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<a href="https://www.baidu.com/" v-if="num>2">点击访问百度</a><hr/>
			<a href="https://www.baidu.com/" v-else-if="num>11">点击访问百度</a>
		</div>
		<script src="../day03/vue.js">
		</script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"num":10,
					"name":"jack",
				},
			})
		</script>
	</body>
</html>

v-show:条件不成立,使用css样式隐藏标签

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<a href="https://www.baidu.com/" v-show="num>11">点击访问百度</a><hr/>
		</div>
		<script src="../day03/vue.js">
		</script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"num":10,
					"name":"jack",
				},
			})
		</script>
	</body>
</html>

@click为v-on:click的缩写

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="a">
			<button v-on:click="test1()">方式一绑定</button>
			<button @click="test2()">方式二绑定</button>
		</div>
		<script src="../day03/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				"el":"#a",
				"methods":{
					test1:function(){
						console.log(111);
					},
					test2(){
						console.log(222);
					}
				}
			})
		</script>
	</body>
</html>

v-for:遍历容器的元素或者对象的属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="a">
			<ul>
				<li v-for="ele in names">{{ele}}</li>
			</ul>
		</div>
		<script src="../day03/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				"el":"#a",
				"data":{
					"names":["小莫","小米","好好学"],
				}
			})
		</script>
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="a">
			<ul>
				<li v-for="ele in users">{{ele.id}},{{ele.name}}</li>
			</ul>
		</div>
		<script src="../day03/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				"el":"#a",
				"data":{
					"users":[{"id":1,"name":"jack"},
								{"id":2,"name":"j"},
								{"id":3,"name":"ja"},
					],
				}
			})
		</script>
	</body>
</html>

v-model:在表单元素上创建双向数据绑定

更新data数据,页面中的数据也会更新。

更新页面数据,data数据也会更新。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
		<div id="app">
			{{count}}
			商品的库存<input type="text" name="count" v-model="count"/>
		</div>
		<script src="../day03/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"count":1,
				},
			})
		</script>
	</body>
</html>

练习:物品数量的加减

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="a">
			<button type="button" @click="add()">+</button>
			<input type="text" name="count" v-model="count"/>
			<button type="button" @click="sub()">-</button>
		</div>
		<script src="../day03/vue.js"></script>
		<script type="text/javascript">
			new Vue({
				"el":"#a",
				"data":{
					"count":1
				},
				"methods":{
					add(){
						this.$data.count++;
					},
					sub(){
						if(this.count>0){
							this.count--;
						}
						
					},
				}
			})
		</script>
	</body>
</html>

vue的生命周期

在这里插入图片描述

 特点

1.beforeCreate:function(){}

特点: vue对象没有创建, 也不能获取data里面的数据

2.created:function(){}

特点: vue对象已经创建,可以获取数据,但是vue对象没有挂载(vue对象还没有加载到浏览器)

3.beforeMount:function(){}

特点: vue对象已经创建,并且在浏览器中存在并且数据未挂载

4.mounted:function(){}

特点: vue对象已经创建,并且在浏览器中存在并且数据已经挂载了

5.beforeUpdate:function(){}

特点: vue对象已经创建,并且在浏览器中存在并且数据已经挂载了,在浏览器的内存中显示的未修改的

6.updateed:function(){}

特点: vue对象已经创建,并且在浏览器中存在并且数据已经挂载了,在浏览器的内存中显示的已经修改的

7.beforeDestroy(){}

特点: vue对象在浏览器中存在,数据依然显示

8.destroyed(){}

特点: vue对象在浏览器中不存在,数据依然显示与vue对象绑定的一切全部解绑.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			hello
		</div>
		<script type="text/javascript" src="vue.js">
		</script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"msg":"hello",
				},
				beforeCreate:function(){
					console.group("----beforeCreate的状态");
					console.log("vue对象:"+this.$el);//vue对象没有创建
					console.log("数据:"+this.$data);//数据拿不到
				},
				created:function(){
					console.group("----created的状态");
					console.log("vue对象:"+this.$el);//vue对象已经创建,没有挂载
					//拿到数据,但是没有挂载(没有加载到浏览器)
					console.log("数据:"+this.$data);
					console.log("msg:"+this.msg);
				},
				beforeMount:function(){
					console.group("----beforeMount的状态");
					console.log("vue对象:"+this.$el);//vue对象创建,挂载
					console.log("数据:"+this.$data);//获取数据,没有挂载
				},
				mounted:function(){
					console.group("----Mounted的状态");
					console.log("vue对象:"+this.$el);//vue对象创建,挂载  
					//获取数据,已经挂载,但是在修改数据是才能显示
					console.log("数据:"+this.$data);
				},
				
			});
		</script>
	</body>
</html>

总结:

自动执行的

beforeCreated() created() beforeMounte() mounted()

当data数据发生改变时才会执行

beforeUpdate() updated()

当vue对象销毁时,才会执行

beforeDestroy(),destroyed()

异步操作

同步操作:

提交数据时提交整个网页

优缺点:

响应慢时,用户看到“留白”,

但是提交次数少

异步操作:

提交数据时,提交网页的一部分

优缺点:

后台响应慢时,用户依然可以看到网页,不会有“留白”

向后台提交数据的次数多

axios异步请求

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<div id="app">
			<!--定义一个button标签,点击事件发送异步请求-->
			<button type="button" @click="test1()">发送get的异步请求</button>
			<button type="button" @click="test2()">发送post的异步请求</button>
		</div>
		<!--引入vue-->
		<script src="js/vue.js"></script>
		<!--引入axios-->
		<script src="js/axios/axios-0.18.0.js"></script>
		<script type="text/javascript">
			new Vue({
				"el":"#app",
				"data":{
					"msg":"hello",
				},
				"methods":{
					//1.定义异步请求
					test1(){
						//2.发送异步请求:get
						//get方法:指定请求地址,参数是一个string或则json的地址
						//then方法:接收后台响应的数据,参数是一个函数
						//catch方法:处理前台和后台的代码异常,参数是一个函数
						//定义一个json文件:模拟后台地址
						var url="moni.json";
						axios.get(url).then(
						function(resp){
							//用来接收后台响应的数据
							var user=resp.data;
							console.log(user.id+","+user.name);
						}).catch();
					},
					test2(){
						axios.post("moni.json").then(function(resp){
							var u=resp.data;
							console.log(u.id);
						}).catch(
						function(){
							window.alert("路径错误");
						}
						);
					}
				}
			})
			
		</script>
	</body>
</html>

 

一、什么是生命周期?
用通俗的语言来说,就是 Vue中实例或者组件从创建到消灭中间经过的一系列过程。 虽然不太严谨,但是也基本上可以理解。
通过一系列实践,现在把所有遇到的问题整理一遍,今天记录一下created和mounted的区别:
二、created和mounted区别?
官方图解如下:

我们从图中看两个节点:
created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。

三、例子

Vue.component("demo1",{
        data:function(){
            return {
                name:"",
                age:"",
                city:""
            }
        },
        template:"<ul><li id='name'>{{name}}</li><li>{{age}}</li><li>{{city}}</li></ul>",
        created:function(){
            this.name="唐浩益"
            this.age = "12"
            this.city ="杭州"
            var x = document.getElementById("name")//第一个命令台错误
            console.log(x.innerHTML);
        },
        mounted:function(){
            var x = document.getElementById("name")//第二个命令台输出的结果
            console.log(x.innerHTML);
        }
    });
    var vm = new Vue({
        el:"#example1"
    })


可以看到输出如下:

 

可以看到都在created赋予初始值的情况下成功渲染出来了。
但是同时看console台如下:

 

可以看到第一个报了错,实际是因为找不到id,getElementById(ID) 并没有找到元素,原因如下:
在created的时候,视图中的html并没有渲染出来,所以此时如果直接去操作html的dom节点,一定找不到相关的元素
而在mounted中,由于此时html已经渲染出来了,所以可以直接操作dom节点,故输出了结果“唐浩益”

注意:created方法中只能用this,axios异步请求中只能用let   v

Vue基础教程(38)Vue.js语法生命周期钩子函数之created和mouted:揭秘Vue.js两大“人生节点”:created和mounted的相爱相杀实录! 还在为Vue.js的created和mounted傻傻分不清而头秃吗?本文用开咖啡店的爆笑比喻,深度剖析这两个核心钩子函数的本质区别。created是你的“幕后筹备期”,数据已就位但DOM还是空气;mounted则是“盛大开业日”,页面元素触手可及。附赠完整代码示例,带你亲手验证它们如何影响数据渲染和DOM操作,彻底告别生命周期混乱! 阅读详情

相关推荐

Uniapp+SpringBoot+Vue全栈外卖系统实战解析

全栈开发是现代Web应用的核心能力,涉及前端跨端适配、后端服务治理与前后端协同工程。理解Uniapp的编译时抽象机制、SpringBoot的自动配置与事务管理、Vue的响应式数据流,是构建高可用本地生活服务系统的基石。这类技术组合不仅支撑小程序/H5/App三端统一交付,更涵盖Redis缓存穿透防护、WebSocket实时同步、Seata分布式事务等企业级实践要点。尤其适合毕业设计、自学进阶与中小项目MVP快速落地场景,帮助开发者从CRUD迈向真实业务闭环。

weixin_42402664的博客 288

Vue 生命周期-钩子函数介绍

千锋 酸奶 打卡学习 生命周期 每一个组件或者实例都会经历一个完整的生命周期,总共分为三个阶段:初始化、运行中、销毁。 钩子函数 vue在整个生命周期里面提供了一些函数,可以在内部实现一些业务逻辑,并且这些函数会在一些特定的场合下去执行。(在生命周期的某一个时刻进行触发) 组件的生命周期中钩子函数在三个阶段中的分布大概如下: 初始化阶段: beforeCreate created ...

Y18356309212的博客 1064

用Python 绘制一个只属于你自己的世界地图

Python之所以这么流行,是因为它不仅能够应用于科技领域,还能用来做许多其他学科的研究工具,绘制地图便是其功能之一。 今天我们用matplot工具包之一的mpl_toolkits来绘制世界地图,这是一个简单的可视化工具,如果希望绘制更加复杂的地图,可以考虑使用Google Maps API,不过这不在我们今天的讨论范围之内。 1.安装 为了能够顺利开展本项目,你需要先安装以下依赖,在cmd或Terminal中输入以下命令: pipinstallnumpy pipinstallm...

qq_38887171的博客 1870

Vue---created()使用的注意事项--执行顺序

vue框架中通常在created钩子函数里执行访问数据库的方法,然后返回数据给前端,前端data中定义全局变量接收数据。例如:当需要将数据库数据显示到页面时,就可以将获取表数据的方法在created()进行调用,在页面渲染之前就将数据获取。并不是按照顺序执行,如果将多个这种类型的方法放入created()中会造成数据获取失败。将上面调用一个数据库的方法之间有数据联系的放在一个方法中。如下这种形式,下面4种方法都要调用同一数据库。对于要调用数据库的多个方法。对于普通的方法调用,

weixin_56851586的博客 5790

R语言分段回归

1.利用虚拟变量进行线性回归 (MEdata.csv的数据来源:https://github.com/ChenQihome9/优快云-Data-Library/blob/master/MEdata.csv) 问题13:针对TAX~GDP,使用分段回归方法,找到其回归方程。编程,并根据程序结果叙述如下几方面问题:(1)分几段最佳?(不超过5段内)(2)分段位置定在哪儿最佳?(3)写出最佳方...

ChenQihome9的博客 1万+

Renesas:定时器输入捕获

一、PWM输入捕获 1、Smart Configurator配置 注意:在使用前,需要使能对应的定时器!否侧无法正常进行输入捕获! 2、脉冲宽度的获取 如何区分高低电平的脉冲宽度:最常用的方法就是在触发中断后,判断IO口的高低电平,来确认是上升沿触发的中断还是下降沿触发的中断。 若无法进入中断,可查看:Renesas:配置中断的常规流程 (1)中断方式(Smart Configurator生成的代码) #pragma interrupt r_Config_TAUB0_0_i...

不吃鱼的猫的博客 2481

vue中什么是created钩子函数,以及使用场景

总结:created是Vue实例创建后的一个重要阶段,在该阶段可以进行数据初始化、网络请求、事件订阅等操作,适用于各种场景,对于组件的初始化和数据准备非常有用,嗯目前我只理解了前两个因为调用接口需要axios和初始化请求,后续遇到更多的事件也会持续的更新。3. 进行订阅和监听:可以在created阶段进行事件的订阅和监听,例如监听window对象的resize事件或者订阅其他组件的事件。2. 发送网络请求:在created阶段可以发送异步请求获取数据,并将获取到的数据保存到data中,以供组件中使用。

m0_65069237的博客 2388

基于STM32的家用新风系统智能控制器 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了家用新风系统智能控制器的全功能开发,覆盖多传感器数据采集、双模式控制、PID调速、异常报警、掉电记忆等核心功能,全程采用保姆式无跳步教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 464

前端笔记Vue项目day2(四)

过滤器 Vue.js允许自定义过滤器,可被用于一些常见的文本格式化。 过滤器可以用在两个地方:双花括号插值和v-bind表达式。 过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示 支持级联操作 ...

czbkzmj的博客 214

51单片机超声波测距数码管显示并报警(Proteus 仿真)

HC-SR04超声波 实物图 使用方法 1、给TRIG端口至少10us 的高电平信号 2、模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回 3、有信号返回,ECHO端口会输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间 计算的话这里就不考虑温度的影响直接用声速340m/s Proteus仿真 HC-SR04可以用Proteus中的SRF04代替 下面附上代码 ...

m0_46254883的博客 1万+

YOLO26涨点改进 | 全网独家创新、检测头Head改进篇 | AAAI 2026 | 使用StripConvHead改进YOLO26的检测头,处理小目标、遮挡小目标检测有效涨点,助力高效发论文

🔥本文给大家介绍使用StripConv条形卷积改进 YOLO26的检测头,可以显著提高模型在高纵横比物体检测、目标定位和多尺度物体检测方面的表现。StripConv条形卷积能够更有效地捕捉细长物体的特征,提升定位精度,并通过简化卷积核设计减少计算冗余,优化计算效率。此外,该改进增强了 YOLO26对复杂场景和实时任务的适应能力,特别适用于遥感图像目标检测、小目标检测等领域。具体怎么使用请看全文。摘要:随着遥感物体检测的快速发展,检测高纵横比物体仍然是一个挑战性问题。

Ai缝合怪、助力小伙伴高效发论文 268

Day05_核心问题

Day05\_核心问题

无 225

PCL 点云八叉树射线相交

PCL 点云八叉树射线相交

dayuhaitang1的博客 850

Day.js日期处理核心四步法:Parse/Validate/Manipulate/Display

JavaScript日期处理是前端开发的基础能力,涉及时间解析、合法性校验、安全计算与语义化展示四大关键环节。原生Date API存在时区歧义、格式容错过强、可变状态等工程隐患,而Day.js以2KB轻量体积,通过不可变设计、严格解析、插件化扩展和开箱即用的国际化支持,重构了时间处理的可靠性范式。其Parse强调格式契约与严格模式,Validate聚焦语法/逻辑/业务三层校验,Manipulate依托不可变性保障状态可预测,Display则融合CLDR标准实现多语言语义渲染。本文围绕这四个核心动作,详解如何

weixin_30904593的博客 351

热力学仿真软件:SimScale_(1).SimScale入门与基础操作

导航栏:位于页面顶部,包含项目管理、仿真设置、结果分析等主要功能。项目列表:展示用户创建的所有项目。工作区:用于进行具体的操作,如几何建模、网格划分、边界条件设置等。控制台:显示操作日志和仿真进度。网格划分是将几何模型离散化为一系列小单元的过程,这些单元用于求解热力学方程。SimScale提供了多种网格划分方法,包括结构化网格和非结构化网格。SimScale提供了丰富的API接口,用户可以通过编程语言进行二次开发,实现自动化仿真和结果分析。项目管理:创建、删除和管理项目。几何建模:创建、导入和修复几何模型。

kkchenjj的博客 1867

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Flask+Vue仓库管理系统开发实战与优化

仓库管理系统是现代企业供应链管理中的核心组件,通过数据库技术与Web框架的结合实现物料全生命周期追踪。Flask作为轻量级Python框架,以其灵活的扩展性和优异的性能表现,特别适合开发定制化的业务系统。结合Vue.js的前端响应式特性,可以快速构建交互友好的管理界面。在工业场景中,这类系统需要处理高并发的库存操作事务,通过SQLAlchemy的SELECT FOR UPDATE等机制保障数据一致性。本文以环保设备行业的滤材管理为例,详解如何实现多级分类检索、智能预警等核心功能,其中Flask平均127ms

circularr9834的博客 473

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

全网最强SpringMVC教程 | 万字长文爆肝SpringMVC(一)

本文介绍了SpringMVC框架的基本概念和入门案例实现。主要内容包括: SpringMVC概述 基于MVC设计模式的轻量级Web框架 主要处理请求接收、业务转发和响应数据转换 相比Servlet更简单灵活 入门案例实现步骤 创建Maven web项目 导入SpringMVC和Servlet依赖 创建SpringMVC配置类 编写Controller处理请求 配置DispatcherServlet替代web.xml 关键点说明 使用@Controller注解标记控制器类 @RequestMapping定义请

qq_45832461的博客 1145

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Vue生命周期 (简单、好理解)

创建阶段有四个钩子函数,分别是:befortCreate,craeted,beforeMount,mounted。放在nextTick中的代码可以在dom更新之后再执行,这样就能在created里获取最新dom了。就是 created 比 mounted 执行的时间更早所以会更多的在 created 中请求。这个过程是从vue实例创建到实例销毁的过程中 到了一定的时间节点就会触发。生命周期函数又叫钩子函数,钩子函数到了某一个时间点会自动触发。接下来就说说用的时候有哪些需要注意的呢?从上面我们可以看出几点,

weixin_58385666的博客 797

vue生命周期详解(一)----创建期间的生命周期函数

vue生命周期钩子函数

qq_44286009的博客 1911

Vue3中的自定义指令(defineDirective)和钩子函数(created、mounted、updated

根据路线图上的重点去进行有针对性的学习,在学习过程中,学会写笔记,做总结。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】html5 / css3 学习笔记JavaScript 学习笔记Vue 学习笔记。

2401_84435768的博客 1708

Vue3中的自定义指令(defineDirective)和钩子函数(created、mounted、updated、unmounted)

本文主要介绍Vue3中自定义指令和钩子函数的使用方法和它们之间的关系。

一起学习 3994

Vue进阶(三十七):created、mounted等钩子函数整理

1.钩子函数 钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。(百度百科) 2.相对于前端来讲 对于前端来说,钩子函数就是指再所有函数执行前,我先执行了的函数,即 钩住 我感兴趣的函数,只要它执行,我就先执行。 created:htm...

IT全栈 华强工作室 8326

前端每日一练:Vue 中 created 和 mounted 生命周期的区别及使用场景详解

created 生命周期钩子在组件实例被创建后立即执行,适合进行数据初始化、设置初始状态和执行异步请求等任务。mounted 生命周期钩子在组件模板渲染到 DOM 后触发,适合操作已经渲染的 DOM 元素和执行与 DOM 相关的逻辑。综上所述,了解 created 和 mounted 生命周期钩子的区别及适用场景,有助于我们合理地利用这两个生命周期,提高组件的性能和开发效率。

SAXX2的博客 920

【Vue】created、mounted、updated详解

对浏览器来说,已经完成了dom与css规则树的render,并完成对render tree进行了布局,而浏览器收到这一指令,调用渲染器的paint()在屏幕上显示,而对于vue来说,在mounted阶段,vue的template成功挂载在$el中,此时一个完整的页面已经能够显示在浏览器中,所以在这个阶段,即可以调用节点了(关于这一点,在笔者测试中,在mounted方法中打断点然后run,依旧能够在浏览器中看到整体的页面)。通过浏览器的渲染过程,可以总结出created和mounted的使用场景。

慕白Lee的博客 7万+

vue created详细解释

是一个生命周期钩子函数,它在Vue实例被创建后立即调用。在这个函数中,我们可以执行一些初始化操作,比如设置数据、创建组件、请求数据等等。生命周期钩子函数是Vue.js中非常重要的一个函数,使用它可以方便地执行一些初始化操作。生命周期钩子函数会被自动调用,并输出一条日志。在上面的示例中,当Vue实例被创建后,

zhq007140的博客 2419

Vue进阶(幺陆玖)信创终端适配改造

随着外部监管对国产化的要求越来越高,所在产品团队信创专项改造工作开始实施,需求如下:信创平台控件只能使用在信创终端使用,不能应用在Windows上,存量系统运行过程中需要能够识别业务人员当前使用的终端操作系统,若终端操作系统为Windows,则使用旧版本Windows控制,若信创平台为麒麟ARM64统信UOS中的其中一个,则切换为信创平台。

IT全栈 华强工作室 19万+
上一篇: 前端(day04)DOM、BOM、Api和内置对象
下一篇: 前端(day06)vue组件,Element-UI
五八个
博客等级 码龄8年 638粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值