Vue基础入门---详细简介

news2024/9/24 3:26:57

一,对Vue的概念

1.1 什么是Vue ?

       一种流行的JavaScript前端框架,用于构建交互式的Web应用程序。它以简洁、灵活和高效的特性而受到广泛欢迎。Vue采用了一种响应式的数据绑定机制,使得数据的变化能够自动更新相关的DOM元素,同时也提供了一套简洁明了的语法和API,使得开发人员能够更轻松地构建和维护复杂的用户界面

总而言之,Vue是一种功能强大且易于学习的前端框架,适用于开发各种规模的Web应用程序,从简单的页面增强到复杂的单页面应用

1.2  使用Vue的好处

简洁易学:提供了简洁的API和清晰的文档,使得学习和上手变得相对容易。

响应式:使用了响应式的数据绑定机制,当数据发生变化时,自动更新相关的DOM元素,减少了手动操作DOM的繁琐。

组件化开发:鼓励组件化开发,将界面拆分为独立可复用的组件,提高了代码的可维护性和可重用性。

生态系统:拥有强大的生态系统,包括Vue Router、Vuex等插件和工具,能够满足不同规模项目的需求。

性能优化:通过虚拟DOM和精细的更新策略,提高了应用程序的性能,并保持了灵活性和开发效率

二,Vue的基础入门

2.1 MVVM(数据双向绑定)

      在使用之前我们先来了解一下什么是MVVM?,简单来说它一种更好的UI模式解决方案,MVVM可以通过数据双向绑定让数据自动地双向同步        

MVVM    M-V-VM

MVVMM-V-VM
M

model数据模型

V

view视图

VMViewModel视图模型,把Model和view关联起来就是ViewModel,viewModel负责把Model的数据同步到View显示出来,还负责把View的修改同步回Model

 1) V(修改数据) --> M  将视图层的数据通过事件将数据提交到后端服务器(前端到后端)
      $('#btn_login').click(function(){
         通过ajax将页面中的数据通过json格式传递到后端服务器
     })

   2) M(修改数据)-> V  将后端数据(JSON)通过赋值的方式在视图层展现(后端到前端)  
      通过ajax的方式调用后端的数据接口将回传过来的JSON数据渲染到页面
      $('#book_name').val("xxx");

        相比之下MVC模式,MVVM模型是一种更现代化的架构模式,它在MVC模式的基础上引入了一个新的组件:视图模型(ViewModel)。MVVM模式将应用程序分为四个主要组件:模型(Model)、视图(View)、视图模型(ViewModel)和数据绑定(Data Binding)。模型负责处理数据和业务逻辑,视图负责展示用户界面,视图模型则充当模型和视图之间的中介,负责处理视图的状态和行为。数据绑定机制使得视图和视图模型之间的数据同步更加简单和自动化。MVVM模式的优点是将视图和业务逻辑分离,使得代码更易于维护和测试,并且通过数据绑定机制提供了更好的用户界面交互体验。

2.2 BootCDN(加速服务)

官方网址:BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务 

BootCDN是一个免费的CDN加速服务,致力于为Bootstrap、jQuery、React、Vue.js一样优秀的前端开源项目提供稳定、快速的免费CDN加速服务。BootCDN所收录的开源项目主要同步于cdnjs。你可以通过BootCDN提供的链接直接使用这些开源库,而无需下载到本地,从而加快页面的加载速度 。

三,Vue实例

3.1 Vue开发示例

导入相对应的工具,在BootCDN供的链接直接使用这些开源库copy即可

<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>

注:

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

1 定义边界

         <div id="Bing">
			    {{msg}}
		   </div>

2 创建Vue实例 

	<body>
		   <script type="text/javascript">  
			 new Vue({
			   el:"#Bing",
			   data(){
				   return  {msg:'Hello Bing!'}
			   }
		   })
		</script>
	</body>

 3.2  Vue的基本语法

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

①v-model

        在Vue中,v-model是一个指令,用于在表单控件元素上创建双向数据绑定。它实际上是语法糖,等同于v-bind和v-on的结合体

定义边界

	<!--定义vue管理的边界,有且只有一个根节点--->
		   <div id="Bing">
			    {{msg}}
				<input v-model="msg"><br/>
		   </div>
		   

Vue实例:

    <script type="text/javascript">  		  
		    <!--构建vue实例并绑定边界-->
			 new Vue({
			   el:"#Bing",
			   data(){
				   return  {msg:'Bing!'}
			   }
		   })
		   

②v-bind:value

        在Vue中,v-bind是一个指令,用于将元素的属性与Vue实例的数据进行绑定。其中,:value是v-bind的一个参数,表示要绑定的属性名

③事件绑定

<!--完整写法-->
<button v-on:事件名="函数名/vue表达式">点我</button>
<!--简化写法-->
<button @事件名="函数名/vue表达式">点我</button>

Vue支持html中所有已知事件. 如: @click, @submit等, 只不过是将之前的on全部换成了@

如button中的@click

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!--导入相对应的工具-->
		    <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>
	</head>
	<body>
		<!--定义vue管理的边界,有且只有一个根节点--->
		   <div id="Bing">
			    <!-- {{msg}} -->
				<input :value="msg"><br/>
				<button @click="tan()">点击我弹出输入框内容</button>
		   </div>
		   
		   
		    <script type="text/javascript">  
		    <!--构建vue实例并绑定边界-->
			 new Vue({
			   el:"#Bing",
			   data(){
				   return  {msg:'Bing!'}
			   },
			   methods:{
				   tan(){
					   alert(this.msg)
				   }
			   }
		   })
		</script>
		
		
	</body>
</html>

四,Vue的生命周期 

   Vue生命周期钩子是在Vue实例的不同阶段执行的回调函数。这些钩子函数允许我们在特定的生命周期阶段执行自定义逻辑,以便在应用程序的不同阶段进行初始化、更新和销毁操作。

以下是Vue的生命周期钩子函数:

beforeCreate:在实例被创建之前调用,此时数据观测和事件配置尚未完成。

created:在实例创建完成后调用,此时已完成数据观测,但尚未挂载到DOM上。

beforeMount:在实例挂载到DOM之前调用。

mounted:在实例挂载到DOM后调用,此时可以访问到DOM元素。

beforeUpdate:在数据更新之前调用,发生在虚拟DOM重新渲染和打补丁之前。

updated:在数据更新之后调用,发生在虚拟DOM重新渲染和打补丁之后。

beforeDestroy:在实例销毁之前调用,此时实例仍然完全可用。

destroyed:在实例销毁之后调用,此时实例已被销毁,所有的事件监听器和子实例也被移除。
 

Vue生命周期图:

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

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

相关文章

无涯教程-JavaScript - COMBIN函数

描述 COMBIN函数返回给定数量的项目的组合数量。使用COMBIN确定给定数量的项目的组总数。 语法 COMBIN (number, number_chosen)争论 Argument描述Required/OptionalNumberThe number of items.RequiredNumber_chosenThe number of items in each combination.Required No…

人脸识别三部曲

人脸识别三部曲 首先看目录结构图像信息采集 采集图片.py模型训练 训练模型.py人脸识别 人脸识别.py效果 首先看目录结构 引用文121本 opencv │ 采集图片.py │ 训练模型.py │ 人脸识别.py │ └───trainer │ │ trainer.yml │ └───data │ └──…

如何把VRTE的应用程序在Ubuntu上跑起来?

1、rvbuild -d project_name 20 产生一个文件夹vrte 如果此时直接将vrte文件夹打包放到Ubuntu的 /opt目录内 执行./opt/vrte/usr/bin/exmd.sh 会出现如下错误&#xff1a; 但是查看文件发现这个文件是存在的。 系统找不到文件是因为找不到对应的ld库 从VRTE里面拷贝一个库…

css动画旋转分层旋转图

1.代码 <template><view class"animations"><view class"animation animation1"><view class"animate1"></view><view class"animate2"></view><view class"animate3">&l…

九鼎开发板Uboot开发问题——sd_fusing运行异常

在学习朱有鹏老师的嵌入式Linux——Uboot移植&#xff0c;运行sd_fusing.sh脚本出现mkfs.fat命令参数问题&#xff0c;一直提示"No device specified." 脚本内容&#xff1a; # # Copyright (C) 2010 Samsung Electronics Co., Ltd. # http://www.sams…

多目标优化算法:基于非支配排序的霸王龙优化算法(NSTROA)MATLAB

一、霸王龙优化算法 霸王龙优化算法&#xff08;Tyrannosaurus optimization&#xff0c;TROA&#xff09;由Venkata Satya Durga Manohar Sahu等人于2023年提出&#xff0c;该算法模拟霸王龙的狩猎行为&#xff0c;具有搜索速度快等优势。 霸王龙属于暴龙超科的暴龙属&#…

粘连物体分割

threshold-全局固定阈值分割 Binary Threshold-自动全局阈值分割 dyn_threshold-局部动态阈值分割 var_threshold算子-均值和标准偏差局部阈值分割 dual_threshold-双重阈值分割&#xff08;有符号图像的阈值算子&#xff09; auto_threshold-自动全局阈值分割 fast_threshold-…

Java面试_并发编程_线程基础

Java面试_并发编程_线程基础 线程基础线程和进程的区别(出现频率: 3⭐)并行和并发的区别(出现频率: 2⭐)线程的创建(出现频率: 4⭐)线程的状态(出现频率: 4⭐)让线程按顺序执行(出现频率: 3⭐)notify()和notifyAll()有什么区别(出现频率: 2⭐)wait方法和sleep方法的区别(出现频…

Ubuntu下 Docker、Docker Compose 的安装教程

Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。 Docker Compose是用于定义…

springboot班级综合测评管理系统springboot005

大家好✌&#xff01;我是CZ淡陌。一名专注以理论为基础实战为主的技术博主&#xff0c;将再这里为大家分享优质的实战项目&#xff0c;本人在Java毕业设计领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#xff0c;希望你能有所收获&#xff0c;少走一些弯路…

优思学院|六西格玛与敏捷管理两者有何不同?

如果你正在寻找提高组织流程和降低缺陷或错误的方法&#xff0c;六西格玛和敏捷是两种你可能会考虑的方法。这两种方法有着不同的重点和应用领域。在这篇文章中&#xff0c;我们将深入研究六西格玛和敏捷&#xff0c;并探讨它们之间的差异。 什么是六西格玛&#xff1f; 六西…

MySQL数据库索引优化难点与面试点

MySQL数据库索引优化难点与面试点 什么是MySQL索引&#xff1f; 索引的MySQL官方定义&#xff1a;索引是帮助MySQL快速获取数据的数据结构。 动力节点原文&#xff1a; MysQL官方对于索引的定义:索引是帮助MySQL高效获取数据的数据结构。 MysQL在存储数据之外&#xff0c;数据…

Qt5开发及实例V2.0-第二章Qt模板库工具类及控件

Qt5开发及实例V2.0-第二章Qt模板库工具类及控件 第2章 Qt 5模板库、工具类及控件2.1 字符串类2.1.1 操作字符串2.1.2 查询字符串数据2.1.3 字符串的转换 2.2 容器类2.2.1 QList类、QLinkedList类和QVector类2.2.2 QMap类和QHash类 2.3 QVariant类2.4 算法及正则表达式2.4.1 Qt …

Spring编程常见错误50例-Spring Bean依赖注入常见错误(下)

Value没有注入预期的值 问题 对于Value可以装配多种类型的数据&#xff1a; 装配对象&#xff1a; Value("#{student}") private Student student;Bean public Student student(){Student student createStudent(1, "xie");return student; }装配字符…

【Nuxt3】Vue3 + Element-plus 打包后报错 @popperjs/core

问题&#xff1a; 更新 Element-plus 后&#xff0c;运行时需要安装 popperjs/core 依赖。 如果正常执行 npm install popperjs/core &#xff0c;那么&#xff0c;打包时&#xff0c;就会出现下面报错。 Named export ‘placements’ not found. The requested module ‘poppe…

Python | 为FastAPI后端服务添加API Key认证(分别基于路径传参和header两种方式且swagger文档友好支持)

文章目录 01 前言02 路径传参方式添加API Key2.1 完整代码2.2 请求示例2.3 swagger文档测试 03 请求头Header方式传入API Key&#xff08;推荐&#xff09;3.1 完整代码3.2 请求示例3.3 swagger文档测试 01 前言 FastAPI&#xff0c;如其名所示&#xff0c;是一个极为高效的框…

云计算的未来:云原生架构和自动化运维的崭露头角

文章目录 云计算的演进云原生架构1. 容器化2. 微服务3. 自动化部署和扩展4. 故障恢复 自动化运维1. 基础设施即代码&#xff08;IaC&#xff09;2. 运维自动化示例&#xff1a;使用Ansible自动化配置管理 3. 自动化监控和报警 未来展望1. 更多的自动化2. 多云混合云3. 边缘计算…

华为+苹果的“科技春晚”背后,“自主创新+实在技术”遥遥领先!

过去的24小时里&#xff0c;科技春晚迎来“双主角”&#xff1a;12日下午&#xff0c;华为发布会&#xff0c;13日凌晨&#xff0c;苹果发布会。 尽管苹果一向以其创新和高端的形象而闻名&#xff0c;但与昔日苹果发布会后有关新品的词条霸屏微博热搜不同&#xff0c;当天在发…

初步了解华为的MTL(市场到线索)流程的基本概念和来龙去脉

前两天&#xff0c;有读者给华研荟发私信&#xff0c;说在学习华为资料的时候看到华为有一个MTL流程&#xff0c;想了解下这个MTL流程和LTC流程有什么区别&#xff1f;既然有了LTC流程&#xff0c;为什么还要MTL流程呢&#xff1f; 为此&#xff0c;今天华研荟给大家简要介绍华…

让电子制造厂提高生产率的方法,学会受用终生!

在现代工业领域&#xff0c;工厂的生产运营离不开复杂的设备和关键的基础设施。然而&#xff0c;工厂在日常运营中常常面临着各种风险&#xff0c;其中之一就是水浸事件。 水浸监控不仅仅是一种反应性的措施&#xff0c;更是一种预防性的安全策略。通过使用高度先进的传感技术和…