一篇关于vue的入门的详细介绍

news2024/9/24 21:21:45

目录

一.介绍

二.库和框架的区别

 三.什么是MVVM模式

 四.实例

4.1. Vue开发示例

 4.2. 双向数据绑定

4.3. 生命周期

      好啦,今天的分享就到这了,希望能够帮到你呢!😊😊   


一.介绍

Vue.js是一种流行的JavaScript框架,用于构建用户界面。它被设计为一个渐进式框架,可以逐步应用到现有项目中,也可以作为一个完整的单页面应用程序开发框架。以下是Vue.js的一些入门介绍:

  1. 轻量级:Vue.js的核心库只关注视图层,相比其他框架更小巧,能快速加载和渲染页面。

  2. 双向数据绑定:Vue.js使用了MVVM模式(Model-View-ViewModel),可以通过双向数据绑定实现数据的自动同步,当数据改变时,视图会自动更新。

  3. 组件化开发:Vue.js提供了组件化的开发方式,可以将UI界面分割成独立、可复用的组件,每个组件有自己的逻辑和状态。这样可以提高代码的可维护性和重用性。

  4. 虚拟DOM:Vue.js使用虚拟DOM技术,将页面的渲染操作优化为虚拟DOM的修改操作,通过最小化DOM操作来提高性能。

  5. 生态系统:Vue.js拥有庞大的生态系统,有大量的第三方库、插件和工具可以和Vue.js无缝集成,方便开发者开发和测试。

 如果你想学习Vue.js,可以先了解其基本的概念和核心特性,然后通过官方文档、教程和实践项目来深入学习和理解。同时,多参与社区的讨论和交流,与其他开发者一起分享经验和解决问题,可以加速你的学习进度。

二.库和框架的区别

库和框架是两种不同的软件开发概念。

  • 一个库(Library)是一组已经编写好的可重用代码片段的集合。它通常提供了特定功能的API,开发者可以根据自己的需要引入并使用这些代码片段。库的使用是被动的,开发者可以在需要的时候选择使用特定的功能,而不需要全盘接受库的架构。
  • 一个框架(Framework)是一个更为全面的软件开发工具。它包含了一整套的解决方案、规范和工具,用于支持特定类型应用程序的开发。框架通常具有更强的约定和规范,开发者需要按照框架的结构和规则进行开发。开发者在使用框架时是被动的,需要遵循框架提供的规范和接口进行开发。

总的来说,库更像是一个工具箱,提供了各种各样的方法和功能给开发者使用。而框架则是一种更为集成和约束性强的开发平台,提供了整体的架构和设计模式,开发者在框架下进行开发时需要按照规范进行。

在实际应用中,开发者可以根据需求选择使用库或框架。使用库可以更自由地进行定制和灵活性更高,对于一些简单的功能增强或需求特定的情况下更加合适。使用框架可以提供更全面的解决方案和更高的开发效率,对于构建复杂应用和大型项目来说更为适合。

 三.什么是MVVM模式

MVVM模式(Model-View-ViewModel)是一种软件架构模式,用于将用户界面的逻辑与数据分离。它在视图(View)和数据模型(Model)之间引入了一个称为视图模型(ViewModel)的中间层。

在MVVM模式中,数据模型(Model)表示应用程序的数据和业务逻辑。它负责管理数据的获取、更新和验证,并提供了数据的操作接口。

视图(View)负责呈现数据给用户,并处理用户的交互操作。它通过数据绑定技术将视图中的元素与视图模型进行绑定,以实现数据的自动更新和同步。

视图模型(ViewModel)是视图和数据模型之间的桥梁。它负责将数据模型中的数据转换为视图所需的格式,并提供了与视图交互的操作和事件。视图模型通过数据绑定技术将视图和数据模型解耦,使视图和数据模型可以独立开发和测试。

MVVM模式的优点包括:

  • 分离关注点:MVVM模式将用户界面的逻辑从数据和业务逻辑中分离,提高代码的可维护性和可测试性。

  • 可重用性:通过使用视图模型层,可以将逻辑和状态转移到可重用的组件中,提高代码的重用性。

  • 松耦合:MVVM模式通过数据绑定实现视图和视图模型之间的通信,降低视图和视图模型之间的耦合度。

  • 增强了开发效率:MVVM模式可以通过数据绑定自动更新视图,在开发过程中减少手动DOM操作的代码量。

MVVM模式是一种将视图、视图模型和数据模型相互分离的软件架构模式,通过数据绑定实现视图和视图模型之间的自动更新和同步,提高代码的可维护性和可重用性。

 四.实例

4.1. Vue开发示例

 vue有两种开发方式,一种是直接页面开发,一种是工程级开发,本示例使用的是直接页面开发方式。

注意:

1. 每个Vue应用都是通过用Vue构造器创建一个新的Vue实例开始的。
2. 需要给vue指定一个内容管理区,通常我们也把它叫做边界,这意味着我们接下来的改动全部在指定的div内,div外部无用。
3. 双花括号叫做插值

代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>Vue入门</title>
		<!-- 1. 导入工具 -->
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
	</head>
	<body>
		<!-- 2. 定义vue所管理的边界,有且只有一个根节点 -->
		<div id="jly">
			<h1>{{msg}}</h1>
		</div>
	<script type="text/javascript">
		/* 3. 构建vue实例并绑定边界 */
		new Vue({
			el:"#jly",
			data(){
				return{
					msg:'hello 君临沂',
				}
			}
		})
	</script>
	</body>
</html>

 4.2. 双向数据绑定

  • vue指令:指的是是带有“v-”前缀的特殊属性
  • vue实例的methods用来定义交互事件使用的函数,函数名不限制

 代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>Vue入门</title>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
	</head>
	<body>
		<div id="jly">
			<h1>{{msg}}</h1>
			<p>
				<input v-model="msg" />
                <!-- v-on:(也可以用@替代) -->
				<button v-on:click="getMsg">获取输入框内容</button>
			</p>
		</div>
		<script type="text/javascript">
			new Vue({
				el: "#jly",
				data() {
					return {
						msg: '123',
					}
				},
				methods: {
					getMsg() {
						alert(this.msg);
					}
				}
			})
		</script>
	</body>
</html>

注意:

数据的改变会引起DOM的改变,DOM的改变也会引起数据的变化
只有当实例被创建时data中存在的属性才是响应式的 
用v-model指令在表单控件元素上创建双向数据绑定
this在methods属性的方法里指向当前Vue实例   
console对象可以使用printf风格的占位符。只支持字符(%s)、整数(%d或%i)、浮点数(%f)和对象(%o)四种
Vue实例还暴露了一些有用的实例属性与方法。它们都有前缀$,以便与用户定义的属性区分开来
 

4.3. 生命周期

生命周期(Lifecycle)是指软件组件在运行过程中经历的一系列状态和事件的变化。在软件开发中,例如在应用程序、组件、页面等的开发过程中,都有相应的生命周期概念。

对于一个软件组件来说,生命周期由一系列定义好的阶段组成,每个阶段表示组件在特定时间点的状态。在每个阶段,组件可以执行一些特定的操作,例如初始化、加载数据、渲染、更新等。在生命周期中,还可以触发一些钩子函数(Hooks),这些钩子函数可以在组件的特定时间点进行自定义操作。

常见的前端框架(如Vue.js、React、Angular等)都提供了生命周期的概念和相应的钩子函数,开发者可以利用这些钩子函数控制组件的行为和响应不同的生命周期事件。

以下是一个典型的组件生命周期流程(以Vue.js为例):

  • 创建阶段:组件实例化,初始化数据和事件。

    • beforeCreate:组件实例创建前的钩子函数。
    • created:组件实例创建完成后的钩子函数。
  • 挂载阶段:组件被插入到DOM中。

    • beforeMount:组件挂载前的钩子函数。
    • mounted:组件挂载完成后的钩子函数。
  • 更新阶段:组件的数据发生变化,需要重新渲染。

    • beforeUpdate:组件更新前的钩子函数。
    • updated:组件更新完成后的钩子函数。
  • 销毁阶段:组件从DOM中移除,进行清理工作。

    • beforeDestroy:组件销毁前的钩子函数。
    • destroyed:组件销毁完成后的钩子函数。

通过控制生命周期中的钩子函数,开发者可以在合适的时间点进行特定的操作,例如初始化数据、发送网络请求、订阅事件、执行清理操作等。合理地利用生命周期可以确保组件运行符合预期,提高代码的可维护性和可测试性。

 

 实例:

      好啦,今天的分享就到这了,希望能够帮到你呢!😊😊   

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

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

相关文章

【CNN-FPGA开源项目解析】01--floatMult16模块

文章目录 (基础)半精度浮点数的表示和乘运算16位半精度浮点数浮点数的乘运算 floatMult16完整代码floatMult16代码逐步解析符号位sign判断指数exponent计算尾数fraction计算尾数fraction的标准化和舍位整合为最后的16位浮点数结果[sign,exponent,fraction] 其他变量宽度表alway…

软件系统性能测试报告+测试策略

一、服务背景 性能测试主要是针对信息系统的应用性能指标制订性能测试方案&#xff0c;通过自动化的测试工具执行测试用例&#xff0c;模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,负载测试和压力测试都属于性能测试&#xff0c;两者可以结合进行。 通…

Servlet 和 Cookie-Session 学习笔记(基础)

简单来说&#xff1a;是运行在服务器端的 Java 程序&#xff0c;它作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 用处&#xff1a; 使用 Servlet&#xff0c;您可以收集来自网页表单的用户输入&#xff0c;呈现来自数据库或者…

根据3d框的八个顶点坐标,求他的中心点,长宽高和yaw值(Python)

要从一个3D框的八个顶点求出它的中心点、长、宽、高和yaw值&#xff0c;首先需要明确框的几何形状和坐标点的顺序。通常这样的框是一个矩形体&#xff08;长方体&#xff09;&#xff0c;但其方向并不一定与坐标轴平行。 以下是一个步骤来解决这个问题&#xff1a; 求中心点&a…

深度学习:cross-attention介绍以及与self-attention的区别

1.Cross-attention vs Self-attention Cross-attention的输入来自不同的序列&#xff0c;Self-attention的输入来自同序列&#xff0c;也就是所谓的输入不同&#xff0c;但是除此之外&#xff0c;基本一致。 具体而言&#xff0c; self-attention输入则是一个单一的嵌入序列。 …

长城公开秘密AI团队,杨继峰带队,明年城市NOH落百城

作者&#xff5c;Amy 编辑&#xff5c;德新 传统车企如何打磨智能化&#xff0c;大模型将为车企带来多少助力&#xff1f; 近日&#xff0c;长城汽车原沙龙品牌智能化中心负责人、智能化研发总监杨继峰以TCAL&#xff08;Technology Center Al Lab&#xff0c;简称「AI Lab」)…

【产品运营】不理想的知识库产品

知识库是将自己平时看到或用到的产品知识进行汇总和整理&#xff0c;这是产品知识体系的初始系统&#xff0c;但很多企业的知识库管理其实并不理想 为什么写这篇文章&#xff1f;有3个原因&#xff1a; 帮前客户做解决方案预研&#xff1b;见过太多失败案例&#xff1b;市面上…

实验4 交换机端口隔离(access模式)

交换机端口隔离&#xff08;access模式&#xff09; 实验目的实验拓扑实验步骤&#xff08;1&#xff09;在未划分vlan前&#xff0c;配置pc1、pc2的地址&#xff0c;如图所示&#xff08;2&#xff09;测试两台pc机的连通性&#xff08;3&#xff09;创建vlan&#xff0c;并验…

虚拟化技术:深入浅出

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

源码编译Qt 5.15.9+msvc2019

官方文档里给出了详细步骤&#xff1a; Building Qt Sources Building Qt 5 from Git (Wiki) 注&#xff1a;本文基于windows11vs2019x64qt5.15.9&#xff0c;不编译Qt WebEngine 归纳总结如下&#xff1a; 准备阶段 Qt for Windows - Requirements 安装python&#xff0c;…

实战 | 服务端开发与计算机网络结合的完美案例

前言 大家好&#xff0c;我是Martin 后端&#xff0c;可以说是仅次于算法岗之外竞争最为激烈的岗位&#xff0c;而其中的服务端开发也是很多人会选择在秋招中投递的一个岗位&#xff0c;我想对于很多人来说&#xff0c;走上服务端开发之路的起点就是一个回声服务器了。 今天…

canal

1 安装配置 1.1 下载 https://github.com/alibaba/canal/releases/download/canal-1.1.6/canal.deployer-1.1.6.tar.gz 1.2 mysql配置binlog # on 时&#xff0c;代表着开启 show VARIABLES like log_bin; 1.3 创建MySQL canal用户 # 创建用户 create user canal% ident…

LabVIEW使用巴特沃兹低通滤波器过滤噪声

LabVIEW使用巴特沃兹低通滤波器过滤噪声 设备采集到的数据往往都有噪声&#xff0c;有时候这些数据要做判断使用&#xff0c;如果不处理往往会影响最终的结果。可以使用动态平滑&#xff0c;或者中值滤波等方法。这里介绍使用巴特沃斯低通滤波&#xff0c;也是非常方便的。 下…

Python算法练习 9.18

leetcode 1657 确定两个字符串是否相似 如果可以使用以下操作从一个字符串得到另一个字符串&#xff0c;则认为两个字符串 接近 &#xff1a; 操作 1&#xff1a;交换任意两个 现有 字符。 例如&#xff0c;abcde -> aecdb操作 2&#xff1a;将一个 现有 字符的每次出现转…

Stable Diffusion 系统教程 | 强大的ControlNet 控制网

2023年的2月13日&#xff0c;一款名叫ControlNet的插件横空出世&#xff0c;AI绘画变得更加可控 ControlNet直译过来很简单&#xff0c;就叫做控制网&#xff0c;开发者是一名华裔&#xff0c;毕业于苏州大学&#xff0c;目前在斯坦福做读博士一年级&#xff0c;大佬大佬&…

typora补丁

背景&#xff1a; 安装typora后试用期30天&#xff0c;打补丁可解决此问题 补丁路径 某盘 链接&#xff1a;https://pan.baidu.com/s/18MLqJHqTL7DXdCoaZvMfhg 提取码&#xff1a;vkgg 1.安装typora软件 2.打补丁 2.1.下载补丁包 解压 2.2.将解压文件复制到安装目录 2.3重…

【集成学习】对已训练好的模型进行投票

在不同的数据预处理情况下训练得到了三个SVM模型&#xff0c;结果都差不多&#xff0c;对这三个模型的分类结果进行投票 1、三个模型的model_path # 最终model的path self.model_path log_path/model_name_model.gz self.time_log log_path/model_name_time_log.csv# 模型1…

Java 华为真题-新学校选址

需求&#xff1a; 为了解新学期学生暴涨的问题,小乐村要建立所新学校&#xff0c;考虑到学生上学安全问题,需要所有学生家到学校的距离最短。 假设学校和所有学生家都走在一条直线之上,请问学校建立在什么位置&#xff0c;能使得到学校到各个学生家的距离和最短。 输入描述&…

【面试经典150 | 数组】轮转数组

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;使用额外的数组方法二&#xff1a;翻转数组 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附…

网络安全是什么?手把手教你认识网络安全

一、网络安全 1.概念 网络安全从其本质上讲就是网络上的信息安全&#xff0c;指网络系统的硬件、软件及数据受到保护。不遭受破坏、更改、泄露&#xff0c;系统可靠正常地运行&#xff0c;网络服务不中断。 &#xff08;1&#xff09;基本特征 网络安全根据其本质的界定&#…