Vue入门--vue的生命周期

news2024/12/30 3:21:39

一.什么是Vue

二.Vue的简介

官方网址

特点

 

 三. 前后端的分离

重大问题

优势

4.Vue入门

定义一个管理边界

​编辑 测试结果

vue的优势

​编辑 测试结果

5.Vue的生命周期

vue的生命周期图

​编辑建立一个html

 测试结果


一.什么是Vue

Vue是一种流行的JavaScript前端框架,用于构建用户界面。它被设计为一种渐进式框架,可以逐步应用在项目中,也可以与其他库或现有项目进行整合。Vue采用了虚拟DOM和响应式数据的概念,使得开发者能够更方便地构建交互式的单页面应用。它具有简洁的语法和易于学习的特点,并且被广泛应用于构建Web应用程序。 Vue拥有庞大的社区和丰富的生态系统,提供了许多方便的插件和工具,使得开发过程更加高效和快速。无论是小型项目还是大型应用程序,Vue都是一个强大而灵活的选择。

二.Vue的简介

官方网址

  官网:https://cn.vuejs.org/

特点

Vue具有以下几个特点:

  1. 渐进式框架:Vue被设计为一种渐进式框架,它允许开发者可以逐步采用Vue来构建项目。你可以将Vue与现有项目整合,也可以逐步引入Vue的功能,这种灵活性使得Vue适用于各种规模和类型的项目。

  2. 响应式数据绑定:Vue采用了响应式数据绑定的概念,通过使用Vue的模板语法,开发者可以将数据和DOM元素进行绑定,当数据发生变化时,界面会自动更新。这种机制使得开发者更加容易管理和维护数据与页面之间的同步。

  3. 组件化开发:Vue鼓励以组件化的方式构建用户界面。通过将页面划分为独立的组件,开发者可以将复杂的应用拆分为简单的、可重用的组件。这种开发模式有助于提高代码的可维护性和复用性,并使团队协作更高效。

  4. 虚拟DOM:Vue利用虚拟DOM技术来实现高效的页面更新。通过比较虚拟DOM的变化,Vue可以准确地确定需要更新的部分,并最小化DOM操作,从而提高页面的性能。

  5. 插件化架构:Vue采用插件化架构,允许开发者通过插件来扩展Vue的功能。Vue的生态系统提供了大量的插件和工具,可以帮助开发者解决各种问题,并提供更多的功能选项。

  6. 容易学习和上手:Vue具有简洁、直观的API和易于理解的文档,使得它对于新手来说非常友好。即使没有太多的前端开发经验,也能够快速上手并构建出优雅的用户界面。

总体来说,Vue具有简单易用、高效灵活、可维护可扩展等特点,因此被广泛应用于构建现代化的、交互式的Web应用程序。

 

 三. 前后端的分离

重大问题

  1. 跨域访问问题:由于前后端部署在不同的域名或端口上,浏览器会根据同源策略限制跨域访问,导致前端无法直接请求后端接口。为了解决这个问题,需要进行跨域配置或使用代理进行请求转发。

  2. 接口设计与联调问题:前后端分离意味着前后端开发团队并行开发,前后端需要进行接口的设计和约定。其中可能会涉及接口字段命名、数据格式、接口文档等问题。同时,在联调时,也需要及时进行接口的沟通和调试,确保数据的正确传递和处理。

  3. 认证与授权问题:前后端分离后,用户的认证与授权需要额外的处理。前端通常会发送登录请求,后端返回令牌(Token)给前端,前端将令牌保存在本地,并在每次请求时携带令牌进行认证。后端需要验证令牌的有效性,并对请求进行权限控制。

  4. 部署和维护问题:前后端分离需要独立部署前端和后端代码,前端使用静态文件服务器进行部署,后端使用应用服务器进行部署。这样会增加整体的部署和维护难度,需要更多的开发人员和资源来支持。

  5. 性能优化问题:前后端分离的架构通常会增加前端的复杂度,前端需要管理路由、状态管理、接口请求等。因此,在设计和优化前端架构时,需要合理使用缓存、代码分割、懒加载等技术手段,以提高页面性能和用户体验。

尽管前后端分离面临一些挑战,但通过合适的工具和良好的团队协作,大多数问题都可以得到解决,并且能够带来更好的开发效率和扩展性。

优势

Vue前后端分离具有以下几个优势:

  1. 清晰的职责分离:前后端分离使前端负责用户界面的展示和交互逻辑,后端负责处理数据和业务逻辑。这样可以实现前后端的职责分离,提高团队的协作效率。前端专注于用户体验,后端专注于数据处理和业务逻辑的实现。

  2. 提高开发效率:前后端分离使开发团队能够并行开发,无需等待后端接口完全开发完成。前端可以提前进行开发,并使用模拟数据进行调试和测试。这样可以加快项目的开发速度。

  3. 丰富的生态系统:Vue作为一种流行的前端框架,拥有庞大的社区和丰富的插件、组件库等生态系统。这使得前端开发人员能够轻松地使用各种工具和第三方库来实现功能需求,提高开发效率。

  4. 更好的用户体验:前后端分离可以通过前端渲染和虚拟DOM技术实现快速响应和流畅的用户界面。前端可以使用Vue的响应式数据绑定和组件化开发,实现高度交互性和可复用的界面组件,提升用户体验。

  5. 灵活的技术选型:前后端分离使得前端和后端可以独立选择技术栈,可以根据具体需求选择适合的技术和工具。前端可以选择Vue或其他前端框架,后端可以选择适合的后端语言和框架。这种灵活性使得团队可以根据自身实际情况做出最佳决策。

总的来说,Vue前后端分离能够提高开发效率,分工明确,拥有丰富的生态系统和优秀的用户体验,能够更好地满足现代Web应用程序的需求。

4.Vue入门

定义一个管理边界

 测试结果

vue的优势

 测试结果

5.Vue的生命周期

vue的生命周期图

建立一个html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
	</head>
	<body>
		<div id="d1">
			<div>number:{{number}}</div>
			<div>{{detail()}}</div>
			<input type="text" v-model="number" />
		</div>
		<script>
			var data = {
				number:999,
				msg:null
			};
			var vm = new Vue({
				el:'#d1',
				data:data,
				methods:{
					detail:function(){
						return "使用方法来插值:"+this.msg;
					}
				},
				beforeCreate:function(){
		            console.log('beforeCreate:刚刚new Vue()之后,这个时候,数据还没有挂载呢,只是一个空壳')           
		            console.log(this.msg)//undefined
		            console.log(document.getElementsByClassName("myp")[0])//undefined
		        },
		        created:function(){
		            console.log('created:这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数')
		            this.msg+='!!!'
		            console.log('在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取')
		            console.log('接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染')
		        },
		        beforeMount:function(){
		            console.log('beforeMount:虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated')
		            this.msg+='@@@'
		            console.log('在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取')
		            console.log(document.getElementsByClassName("myp")[0])//undefined
		            console.log('接下来开始render,渲染出真实dom')
		        },
		        // render:function(createElement){
		        //     console.log('render')
		        //     return createElement('div','hahaha')
		        // },
		        mounted:function(){ 
		            console.log('mounted:此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了')
		            console.log(document.getElementsByClassName("myp")[0])
		            console.log('可以在这里操作真实dom等事情...')
		
		        //    this.$options.timer = setInterval(function () {
		        //        console.log('setInterval')
		        //         this.msg+='!'  
		        //    }.bind(this),500)
		        },
		        beforeUpdate:function(){
		            //这里不能更改数据,否则会陷入死循环
		            console.log('beforeUpdate:重新渲染之前触发')
		            console.log('然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染')         
		        },
		        updated:function(){
		            //这里不能更改数据,否则会陷入死循环
		            console.log('updated:数据已经更改完成,dom也重新render完成')
		        },
		        beforeDestroy:function(){
		            console.log('beforeDestory:销毁前执行($destroy方法被调用的时候就会执行),一般在这里善后:清除计时器、清除非指令绑定的事件等等...')
		            // clearInterval(this.$options.timer)
		        },
		        destroyed:function(){
		            console.log('destroyed:组件的数据绑定、监听...都去掉了,只剩下dom空壳,这里也可以善后')
		        }
			});
		</script>
	</body>
</html>

 测试结果

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1019083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为云云耀云服务器L实例评测|使用宝塔10分钟部署一个围猫猫小游戏

目录 前言一、选择华为云云耀云服务器L实例的原因二、华为云云耀云服务器的优势三、快速部署一个小游戏&#xff08;1&#xff09;终端部署1、使用Termius工具连接终端2、安装Nginx3、上传打包文件 &#xff08;2&#xff09;宝塔可视化面板部署1、进入宝塔2、宝塔菜单3、上传代…

【实训项目】你好,教练-校园私教平台的设计与开发

1.设计摘要 随着社会的进步&#xff0c;人们的健康意识逐渐提高&#xff0c;越来越多的人选择在闲暇时间健身&#xff0c;在大学生群体中&#xff0c;这一现象犹为明显。在大学城内&#xff0c;有多家健身房供同学选择&#xff0c;也有许多同学选择在操场或者宿舍内自己健身&a…

使用Seata实现分布式事务

Seata 一&#xff1a;故事背景二&#xff1a;使用方法2.1 下载安装Seata2.4 修改对应配置文件。2.4.1 配置中心2.4.1 注册中心2.4.2 日志保存模式 2.3 启动Seata2.4 项目中集成2.5 数据库内新建undo_log 表进行日志记录2.6 编写代码测试Seata提供的分布式事务功能 三&#xff1…

带你熟练使用list

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

EdgeX Foundry MQTT设备服务

一、部署edgex 1.运行命令行&#xff0c;进入放置docker-compose-fuji-no-secty.yml文件的路径下 下载到本地的docker-compose文件 执行&#xff1a; docker-compose -f docker-compose-fuji-no-secty.yml pull 拉取相关镜像&#xff0c;这里默认将文件中没有注释的服务镜像全部…

企业注册版 :ag-Grid Enterprise 30.1.0

Ag-Grid 被描述为一种商业产品&#xff0c;已根据 EULA 进行分发&#xff0c;并受到我们提供的技术团队的鼓励。它非常高级&#xff0c;具有与行分组一样的性能以及范围选择、主数据和案例、行的服务器端模型等等。Ag-Grid Enterprise 通常附带集成图表&#xff0c;允许用户和开…

无涯教程-JavaScript - IFS函数

描述 IFS函数检查是否满足一个或多个条件,并返回与第一个TRUE条件相对应的值。此功能已在Excel 2016中添加。 语法 IFS (logical_test1, value_if_true1, [logical_test2, value_if_true2], [logical_test3, value_if_true3]…) 争论 Argument描述Required/Optionallogical…

无涯教程-JavaScript - ATAN函数

描述 The ATAN function returns the arctangent, or inverse tangent, of a number. The returned angle is given in radians between -π/2 and π/2. The arctangent is the angle whose tangent is number. 语法 ATAN (number)争论 Argument描述Required/OptionalNumb…

springboot配置注入增强(二)属性注入的原理

一 原理 1 配置的存储 springboot在启动的时候会后构建一个org.springframework.core.env.Environment类型的对象&#xff0c;这个对象就是用于存储配置&#xff0c;如图springboot会在启动的最开始创建一个Environment对象 这个webApplicationType的枚举是在new SpringAppli…

Learn Prompt-Midjourney 图片生成

简介 随着 ChatGPT 的爆火&#xff0c;越来越多的人开始关注并尝试 AI 相关的应用。而图片生成就是其中一个备受瞩目的领域。目前已经有许多图像生成工具&#xff0c;如 Midjourney&#xff0c;Stable Diffusion&#xff0c;DALL-E&#xff0c;Firefly等。本课程主要是以 Midj…

Python 变量的类型注解

视频版教程 Python3零基础7天入门实战视频教程 类型注解 前面有个示例&#xff0c;我们函数参数是字符串类型&#xff0c;但是pycharm工具不知道&#xff0c;所以不会给我们提示s的方法&#xff0c;我们只能人工手写&#xff0c;效率大大降低。 类型注解&#xff1a; 在代码中…

心法利器[101] | 从大模型到大模型系统

心法利器 本栏目主要和大家一起讨论近期自己学习的心得和体会&#xff0c;与大家一起成长。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 2022年新一版的文章合集已经发布&#xff0c;累计已经60w字了&#xff0c;获取方式看这里&…

使用ElementPlus实现内嵌表格和内嵌分页

前言 有时遇到这样的需求&#xff0c;就是在表格里面嵌入一个表格&#xff0c;以及要求带有分页&#xff0c;这样在ElementPlus中很好实现。以下使用Vue2语法实现一个简单例子&#xff0c;毕竟Vue3兼容Vue2语法&#xff0c;若想要Vue3版本例子&#xff0c;简单改改就OK了。 一…

数据结构——图的应用

文章目录 前言一、图的应用1. 最小生成树普里姆&#xff08;Prim&#xff09;算法克鲁斯卡尔&#xff08;Kruskal&#xff09;算法 2. 最短路径Dijkstra算法求单源最短路径 3. 拓扑结构4. 关键路径 总结 前言 图的应用 1.1 最小生成树 1.2 最短路径 1.3 拓扑结构 1.4 关键路径…

【网络教程】揭秘Windows SSH服务端免密登录:告别繁琐,享受安全连接

文章目录 开启Windows下的SSH服务端图形界面安装手动下载安装Windows如何查看系统用户名Windows如何查看本机IP开启免密登录Window生成秘钥Linux下生成秘钥配置公钥视频讲解开启Windows下的SSH服务端 这篇文章演示的环境是Windows11Windows的SSH服务端默认情况下是没有安装的,…

9.项目细节调整

文章目录 学习资料项目整体细节调整处理首页 学习资料 https://www.bilibili.com/video/BV13g411Y7GS/?p24&spm_id_frompageDriver&vd_sourceed09a620bf87401694f763818a31c91e 项目整体细节调整 处理首页 默认的首页 肯定不能给人看。文件在这个位置。 可以删除…

live555 BasicUsageEnvironment目录解读

文章目录 BasicUsageEnvironmentBasicHashTable.cppBasicTaskScheduler.cppBasicTaskScheduler0.cppBasicUsageEnvironment.cppBasicUsageEnvironment0.cppDelayQueue.cpp后续会进行更新 BasicUsageEnvironment ├── BasicHashTable.cpp ├── BasicTaskScheduler0.cpp ├─…

类加载器 - 双亲委派模型

文章目录 回顾一下类加载过程类加载器类加载器介绍类加载器加载规则类加载器总结自定义类加载器 双亲委派模型双亲委派模型介绍双亲委派模型的执行流程双亲委派模型的好处打破双亲委派模型方法 本文参考&#xff1a; 类加载器详解&#xff08;重点&#xff09; | JavaGuide(Ja…

多目标优化算法:基于非支配排序的海象优化算法(NSWOA)MATLAB

一、海象优化算法WOA 海象优化算法&#xff08;Walrus Optimization Algorithm&#xff0c;WOA&#xff09;由Trojovsk等人于2023年提出&#xff0c;该算法模拟海象的进食&#xff0c;迁移&#xff0c;逃跑和对抗捕食者的过程&#xff0c;WOA包含探索、迁移和开发三个阶段&…

正则表达式学习和高级用法

以下所有的验证都在 在线验证 1. 起始符 / 正则表达式的起始符2. 限定符 匹配前面的子表达式**1次或多次**。例如&#xff0c;zo 能匹配 "zo" 以及"zoo"&#xff0c;但不能匹配 "z"。等价于 {1,}。 ? 匹配前面的子表达式**0次或1次**。例如…