vue入门-->前后端分离vue简介,vue入门,vue生命周期

news2024/11/27 0:50:45
  • 前后端分离&vue简介
  • vue入门
  • vue生命周期

1.前后端分离&vue简介

什么是前后端分离?
前后端分离,是开发模式上的前后端分离。

当然还有项目架构方面的前后端分离,也就是在考虑请求并发,服务器性能,处理请求的效率等因素,从而进行前后端分离,对于初学者的理解来说不是那么友好,因此我们只讨论开发模式上的分离。

先下定义:前后端分离就是前后端各司其职,专注处理自己的工作。

为什么要前后端分离?

开发模式上的前后端分离,其目的是:提高开发效率

开发模式上的分离,当前后端未分离时,开发模式是:

前端人员写好静态页面,将页面打包给后端,后端人员将页面放到静态文件目录下,通过后端实现跳转页面,使用jsp或thymeleaf等技术渲染数据等逻辑。
后端人员直接全栈开发,前端后端都由后端来完成。
我们会发现,会出现如下问题

对于后端人员的工作量都太大了,后端人员的工作重心应该集中在处理业务逻辑上,而不是在编写页面,或者渲染页面上。相对的,前端人员只需要对静态页面进行编写。因此在那个时期,前端人员的重要性并不是那么的大。
由于前后端的耦合度过大,导致交流成本过大,前端人员编写的js代码,后端人员不一定能看懂,当项目出现bug的时候,查找问题的根源就变得很困难了。

 前后端分离的优势

前后端分离,降低了前后端之间的耦合度,

让前端人员专心开发前端页面,处理页面跳转逻辑,渲染数据。

让后端人员专心处理业务逻辑,数据持久等操作。

出现了问题,前端的问题前端解决,后端的问题后端解决,纠错成本降低。

vue简介

vue是一套用于构建用户界面的渐进式框架(部分使用,不是全家桶)。渐进式在Vue中,这意味着你可以使用它的部分功能,而不必全部使用。你可以使用Vue来仅仅替换你应用程序中的某个部分,或者将它应用于整个项目中。这样,你就可以逐步迁移到使用Vue构建应用程序的全面实现。

库和框架的区别 

 库(Library),本质上是一些函数的集合。每次调用函数,实现一个特定的功能,接着把控制权交给使用者

      代表:jQuery

      jQuery这个库的核心:DOM操作,即:封装DOM操作,简化DOM操作

 框架(Framework),是一套完整的解决方案,使用框架的时候,需要把你的代码放到框架合适的地方,框架会在合适的时机调用你的代码

      代表:vue

      框架规定了自己的编程方式,是一套完整的解决方案

      使用框架的时候,由框架控制一切,我们只需要按照规则写代码

      框架的侵入性很高(从头到尾)

mvvn模型介绍

mvvn模型:model,view,view-model

                    虚拟dom,渲染dom树==数据双向绑定

mvc模型:model,view,controller

2.vue入门

vue入门显示内容步骤

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<!-- 1.搭建依赖 -->
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>入门</title>
	</head>
	<body>
		<!-- 2.定义vue所管理的边界,有且只有一个边界点 -->
		<div id="app">
			{{msg}}
		</div>
		<script>
             // 3.构建vue示例并绑定边界
			 new Vue({
				 el:"#app",
				 data(){
					 return{msg:'hello vue 雷猴'}
				 }
			 })
		</script>
		
	</body>
</html>

做一个弹幕发送功能,验证vue的强大,以往的jquery:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<!-- 1.搭建依赖 -->
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>入门</title>
	</head>
	<body>
		<!-- 2.定义vue所管理的边界,有且只有一个边界点 -->
		<div id="app">
			{{msg}}
			<span id="show"></span>
			<input id="content"/>
			<button type="button" onclick="tan()">发送弹屏</button>
		</div>
		<script>
             // 3.构建vue示例并绑定边界
			 new Vue({
				 el:"#app",
				 data(){
					 return{msg:'hello vue 雷猴'}
				 }
			 })
			 function tan(){
				 var content=$("#content").val();
				 $("#show").text(content);
			 }
		</script>
		
	</body>
</html>

现在的vue

v-model或:数据的双向绑定,边界中的变量,在vue实例的变量定义

:value或(v-bind:value):从vue实例中的定义变量取出,用到边界中

@click或(v-on:click)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<!-- 1.搭建依赖 -->
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title>入门</title>
	</head>
	<body>
		<!-- 2.定义vue所管理的边界,有且只有一个边界点 -->
		<div id="app">
			<!-- {{msg}} -->
			<!-- <input :value="msg"/> -->    <!-- 111 -->
			<!-- <input value="msg"/> -->    <!-- msg -->
			<!-- <input v-bind:value="msg"/> -->    <!-- 111  -->
			<input v-model="msg"/>    <!-- msg -->
			<button type="button" @click="tan()">发送弹屏</button>
		</div>
		<script>
             // 3.构建vue示例并绑定边界
			 new Vue({
				 el:"#app",
				 data(){
					 return{msg:111}
				 },
				 methods:{
					 tan(){
						 alert(this.msg)
					 }
				 }
			 })
		</script>
		
	</body>
</html>

3.vue生命周期

Vue 的生命周期总共分为8个阶段:创建前、后,载入前、后,更新前、后,销毁前、后。

1、beforeCreate(创建前)

表示实例完全被创建出来之前,vue 实例的挂载元素$el和数据对象 data 都为 undefined,还未初始化。

2、created(创建后)

数据对象 data 已存在,可以调用 methods 中的方法,操作 data 中的数据,但 dom 未生成,$el 未存在 。

3、beforeMount(挂载前)

vue 实例的 $el 和 data 都已初始化,挂载之前为虚拟的 dom节点,模板已经在内存中编辑完成了,但是尚未把模板渲染到页面中。data.message 未替换。

4、mounted(挂载后)

vue 实例挂载完成,data.message 成功渲染。内存中的模板,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面了。实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了,DOM 渲染在 mounted 中就已经完成了。

5、beforeUpdate(更新前)

当 data 变化时,会触发beforeUpdate方法 。data 数据尚未和最新的数据保持同步。

6、updated(更新后)

当 data 变化时,会触发 updated 方法。页面和 data 数据已经保持同步了。

7、beforeDestroy(销毁前)

组件销毁之前调用 ,在这一步,实例仍然完全可用。

8、destroyed(销毁后)

组件销毁之后调用,对 data 的改变不会再触发周期函数,vue 实例已解除事件监听和 dom绑定,但 dom 结构依然存在。

vue初始化默认触发的钩子函数:beforeCreate,created,beforeMount,mounted

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

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

相关文章

68、Spring Data JPA 的 方法名关键字查询(全自动,既不需要提供sql语句,也不需要提供方法体)

1、方法名关键字查询&#xff08;全自动&#xff0c;既不需要提供sql语句&#xff0c;也不需要提供方法体&#xff09; 2、Query查询&#xff08;半自动&#xff1a;提供 SQL 或 JPQL 查询&#xff09; 3、自定义查询&#xff08;全手动&#xff09; ★ 方法名关键字查询&…

微信超实用的隐藏功能:群发上千人,定时发圈,自动回复,一键转发朋友圈

多账号聚合 企业可将员工的工作微信聚合到系统上管理&#xff0c;在同一个页面就能同时收发多个微信的消息&#xff0c;无需频繁地切换设备与账号。将微信号分配给对应的员工&#xff0c;可对已有微信号进行监管。 群发无限制 微信自带的群发是有200人数限制的&#xff0c;对于…

android 点9记录

记录一个9点的4个边作用&#xff0c;左上表示拉伸的区域&#xff0c;需要2边都有黑点&#xff0c;如果只有一边&#xff0c;运行起来会有奇怪的投影&#xff0c;右边和下边默认拉满即可。

无涯教程-JavaScript - MUNIT函数

描述 MUNIT函数返回指定尺寸的单位矩阵。 语法 MUNIT (dimension)争论 Argument描述Required/OptionalDimension Dimension是一个整数,指定要返回的单位矩阵的尺寸。 尺寸必须大于零。 Required Notes MUNIT返回一个数组。因此,应将其作为数组公式输入 MUNIT (N)$\begin{m…

朴素贝叶斯案例分析

贝叶斯模型是利用先贝叶斯定理进行计算的一种机器学习模型&#xff0c;并且此处涉及先验概率和后验概率。比如我们都知道去赌场会十赌九输&#xff0c;此是以前的经验&#xff0c;即为先验概率&#xff0c;也或者大家都知道抛硬币时上下面第一次都是1/2概率&#xff0c;这均为先…

如何制作一篇公众号推文?纯干货

公众号推文是一种通过微信公众号平台向用户传播信息和内容的方式&#xff0c;具有广泛的受众群体和良好的传播效果。下面伯乐网络传媒给大家分享关于如何制作一篇公众号推文的一些建议和步骤&#xff0c;建议收藏起来慢慢看&#xff01; 确定目标受众&#xff1a;在开始制作推文…

Matlab编程中函数的重命名方法

Matlab编程中函数的重命名方法 在进行matlab编程时候&#xff0c;有时需要根据自己的习惯&#xff0c;需要对函数重命名。本文简要介绍重命名的方法。 一、重命名的方法 通过和赋值号实现&#xff0c;如下所示&#xff1a; 新函数名原函数名二、具体举例 clc clear all %将…

第二章-H3C-网络设备操作入门

6.2 路由器与交换机的作用与特点 6.2.1 路由器的作用与特点 路由器的作用 1.连接具有不同介质的链路 2.连接网络或子网&#xff0c;隔离广播 3.对数据报文执行寻址和转发 4.交换和维护路由信息 6.2.2 交换机的作用与特点 交换机的作用 1.连接多个以太网物理网段&#xff0c;隔…

武汉凯迪正大—雷电冲击电压发生器

雷电冲击电压发生器系统特点 1&#xff0e;采用PLC可编程控制器技术&#xff0c;使控制系统实现超小型化及高可靠性能的智能自动控制和测量&#xff1b;配合我公司的数字化测控系统方便的与计算机连接&#xff0c;实现计算机智能自动控制、测量和管理 。 2&#xff0e;输出极…

不负昭华,前程似锦,新一批研发效能认证证书颁发丨IDCF

亲爱的认证学员&#xff0c; 恭喜你成功获得由国家工业和信息化部教育与考试中心颁发的职业技术证书——《研发效能(DevOps)工程师国家职业技术认证》。你的努力和才华得到了官方的认可&#xff0c;这是你职业生涯中的一个重要的里程碑。 这个证书不仅代表着你的专业知识和技…

JeecgBoot 低代码安装 运行开发

技术文档 技术官网&#xff1a; http://www.jeecg.com在线演示 &#xff1a; http://boot.jeecg.com标签 &#xff1a;BasicTable 表格 - JeecgBoot 文档中心入门视频&#xff1a; https://space.bilibili.com/454617261/channel/series 微服务开发&#xff1a; 单体切换为微…

数据结构与算法课后题-第二章(顺序表)

第二章 01题目&#xff0c;存储相对紧凑&#xff0c;所以存储的密度大。 04题目&#xff0c;顺序表可以按照序号随机存取&#xff0c;时间的复杂度为O(1)。 第7题目分析 #include <iostream> using namespace std;#define MaxSize 50 typedef int ElemType; typedef…

算法通过村第八关-树(深度优先)白银笔记|深度和高度问题

文章目录 前言1. 最大深度问题2. 判断平衡树3. 最小深度4. N叉树的最大深度总结 前言 提示&#xff1a;我的整个生命&#xff0c;只是一场为了提升社会地位的低俗斗争。--埃莱娜费兰特《失踪的孩子》 这一关我们看一些比较特别的题目&#xff0c;关于二叉树的深度和高度问题。这…

ORA-00257:archiver error.Connect internal only,until freed.

ORA-00257:archiver error.Connect internal only,until freed. 1、报错原因 归档满了2、解决方法 1.查看归档路径 archive log list;Arcive destination USE_DB_RECOVERY_FILE_DEST此参数代表归档存放路径&#xff0c;本地存放为/opt/oracle…&#xff0c;asm为archdg …

保姆级式教程:教你制作电子画册

在这个数字化时代&#xff0c;电子画册成为了展示和分享作品的一种流行方式。制作一个精美的电子画册不仅可以展示你的创意和才华&#xff0c;还可以吸引更多人的关注和欣赏。下面告诉大家一些小步骤&#xff0c;带你一步步学习如何制作电子画册。 1.收集和整理作品 接下来&am…

ICS TRIPLEX T8151B 数字量输入模块

ICS TRIPLEX T8151B 是一种数字量输入模块&#xff0c;通常用于工业控制和自动化系统中&#xff0c;用于监测和采集数字输入信号&#xff0c;例如开关状态、传感器状态或离散信号。以下是可能包括在 ICS TRIPLEX T8151B 数字量输入模块中的一些常见产品功能&#xff1a; 数字输…

全局异常处理+JSR303验证

一、前言 我们在日常开发中&#xff0c;避不开的就是参数校验&#xff0c;有人说前端不是会在表单中进行校验的吗&#xff1f;在后端中&#xff0c;我们可以直接不管前端怎么样判断过滤&#xff0c;我们后端都需要进行再次判断&#xff0c; 为了安全 。因为前端很容易拜托&…

Chemdraw 使用小技巧

Chemdraw 快速画分子结构 Chemdraw中有个join 功能&#xff0c;可将多个分子快速的连接在一起&#xff0c;还有group以及ungroup 功能也可以快速实现。Chemdraw画布太小&#xff0c;利用page-document settings, Layout-Poster&#xff0c;修改height, widthChemdraw快速创建新…

C语言练习题解析(4)

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言刷题专栏&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅C语言进阶之路&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐ 文…

Flink-CDC 抽取SQLServer问题总结

Flink-CDC 抽取SQLServer问题总结 背景 flink-cdc 抽取数据到kafka 中&#xff0c;使用flink-sql进行开发&#xff0c;相关问题总结flink-cdc 配置SQLServer cdc参数 1.创建CDC 使用的角色, 并授权给其查询待采集数据数据库 -- a.创建角色 create role flink_role;-- b.授权…