当前位置: 首页 > news >正文

Vue简介及简单应用

目录

一、Vue简介

1、Vue介绍

官方说法:Vue是一个构建用户界面(UI)的渐进式JavaScript框架。并且颠覆了传统的MVC模式(js)使用了MVVM模型开发,它实现了前后端分离。

2、库和框架的区别

3、MVVM模型的介绍

二、Vue入门

1、首先我们需要在项目中导入Vue的依赖

2、定义边界、创建Vue实例、挂载边界

3、利用MVVM实现双向数据绑定

4、Vue事件(点击事件):当点击获取输入框中的内容时,将会将输入框的内容提示出一个提示框,而提示框中的内容也会随着文本框中的内容改变而改变!(数据双向绑定)

 三、Vue生命周期


今天来与大家分享一个热门的前端框架Vue

一、Vue简介

1、Vue介绍

官方说法:Vue是一个构建用户界面(UI)的渐进式JavaScript框架。并且颠覆了传统的MVC模式(js)使用了MVVM模型开发,它实现了前后端分离。

官方网址:https://cn.vuejs.org/      Vue作者:尤雨溪/中国无锡

个人认为Vue是一个前端库,Vue包含了大量的特定函数,同时因为ElEmentUI是在Vue的基础上结合Html5所开发的一个前端框架,等于再一次封装了Vue。与基于JQuery开发的easyUI相似,JQuery作为库,easyUI作为前端框架。

2、库和框架的区别


  2.1 库(Library),本质上是一些函数的集合。每次调用函数,实现一个特定的功能,接着把控制权交给使用者
      代表:jQuery
      jQuery这个库的核心:DOM操作,即:封装DOM操作,简化DOM操作

  2.2 框架(Framework),是一套完整的解决方案,使用框架的时候,需要把你的代码放到框架合适的地方,框架会在合适的时机调用你的代码 
      代表:vue
      框架规定了自己的编程方式,是一套完整的解决方案
      使用框架的时候,由框架控制一切,我们只需要按照规则写代码
      框架的侵入性很高(从头到尾)
 

3、MVVM模型的介绍

MVVM一套更好UI的解决方案,MVVM通过数据双向绑定让数据自动地双向同步

M:Model模型   V:View视图  VM:视图模型  虚拟Dom 

不再需要程序员手动编写DOM节点(比如<input><table>)

二、Vue入门

我将通过案例来向大家讲解Vue入门

1、首先我们需要在项目中导入Vue的依赖

可以在官方中查找自己需要的版本并下载引入,也可以在CDN中查找(需要联网)

比如说在CDN,直接输入搜索需要的vue版本即可 

<script                         src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>

2、定义边界、创建Vue实例、挂载边界

定义边界即在Html中定义一个Vue所管理的区域,必须是根节点

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div id="app">
			<h3>{{msg}}</h3>
		</div>
		<script type="text/javascript">
			//绑定边界
			new Vue({
				el:'#app',
				data(){
					return{msg:'vue初步使用'}
				}
			})
		</script>
	</body>
</html>

同时 data中返回数据有三种方式

2.1、直接返回数据

data(){
					return{msg:'vue初步使用'}
				}

2.2、data返回json格式

data(){
					return{msg:json对象}
				}

2.3、通过方法返回数据

3、利用MVVM实现双向数据绑定

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div id="app">
			
			<h3>{{msg}}</h3>
			<input type="text" v-model="msg" />
			<h3>{{msg}}</h3>
			<h3>{{msg}}</h3>
			<h3>{{msg}}</h3>

		</div>
		<script type="text/javascript">
			//绑定边界
			new Vue({
				el:'#app',
				data(){
					return{msg:'vue初步使用'}
				}
			})
		</script>
	</body>
</html>

4、Vue事件(点击事件):当点击获取输入框中的内容时,将会将输入框的内容提示出一个提示框,而提示框中的内容也会随着文本框中的内容改变而改变!(数据双向绑定)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<title></title>
	</head>
	<body>
		<div id="app">
			<h3>{{msg}}</h3>
			<input type="text" v-model="msg" />
			<button v-on:click="getMsg">获取输入框的内容</button>
		</div>
		<script type="text/javascript">
			//绑定边界
			new Vue({
				el:'#app',
				data(){
					return{msg:'vue初步使用'}
				},
				methods:{
					getMsg(){
						alert(this.msg);
					}
				}
			})
		</script>
	</body>
</html>

 三、Vue生命周期

vue生命周期是vue入门乃至整个vue框架中都是很重要的一部分!虽然说我们现在使用vue,但是好多人vue的生命周期是什么。今天就大致跟大家讲讲vue的生命周期。先看一下vue的生命周期示意图:

 

vue的生命周期大致分为几个阶段:

          1、先new出一个vue实例

          2、先进beforecreate函数:刚刚new Vue()之后,这个时候,数据还没有挂载呢,只是一个空壳

          3、之后进create函数:

               这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数在这里可以在渲染前倒数第二次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取 接下来开始找实例或者组件对应的模板,编译模板为虚拟dom放入到render函数中准备渲染

          4、再进beforeMount函数:

                虚拟dom已经创建完成,马上就要渲染,在这里也可以更改数据,不会触发updated在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数,一般可以在这里做初始数据的获取

接下来开始render,渲染出真实dom

          5、再进mounted:此时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了

          6、之后进beforeUpdate:重新渲染之前触发然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染。

          7、再之后进updated:数据已经更改完成,dom也重新render完成

          8、再进beforedestroyed函数以及destroyed函数:将vue项目摧毁。
 

通俗点讲各个阶段:

          1、beforecreate:1、定义一些变量 2、绑定边界

          2、create:改变的代码,但不是最终代码

          3、beforemount:虚拟dom--->缓存

          4、mount:真实dom和虚拟dom勾载在一起

          5、beforeupdate和update:数据同步      
 

相关文章:

  • 停止线程的方法
  • java计算机毕业设计计算机专业在线学习评估软件-演示录像-源码+数据库+系统+lw文档+mybatis+运行部署
  • STM32Cube学习(2)——定时器中断
  • jenkins安装部署(前端+后端)自动发布
  • docker logs 命令
  • 数据结构和算法-全文总结
  • 漏洞复现-CVE-2022-1388命令执行F5 BIG-IP iControl REST
  • labelme标注及标签的统一
  • 日常开发中比较使用的命令行
  • 项目管理证书 PMP 的含金量高吗?
  • RS笔记:深度推荐模型之多任务学习PLE模型 [RecSys 2020 最佳论文 腾讯]
  • 好用的word插件汇总
  • Flutter学习笔记 —— 完成一个简单的新闻展示页
  • pytorch 常见的网络层(卷积层,池化层,线性层,激活函数)
  • java计算机毕业设计计算机系教师教研科研管理系统源码+数据库+系统+lw文档+mybatis+运行部署
  • const let
  • Javascript 原型链
  • Java到底能干嘛?
  • MD5加密原理解析及OC版原理实现
  • MobX
  • python 学习笔记 - Queue Pipes,进程间通讯
  • Python利用正则抓取网页内容保存到本地
  • Redis 懒删除(lazy free)简史
  • scrapy学习之路4(itemloder的使用)
  • SpringBoot几种定时任务的实现方式
  • swift基础之_对象 实例方法 对象方法。
  • Twitter赢在开放,三年创造奇迹
  • uva 10370 Above Average
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • Vue全家桶实现一个Web App
  • 对象管理器(defineProperty)学习笔记
  • 面试总结JavaScript篇
  • 排序算法学习笔记
  • 如何利用MongoDB打造TOP榜小程序
  • 如何使用 JavaScript 解析 URL
  • 鱼骨图 - 如何绘制?
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (二)JAVA使用POI操作excel
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (含笔试题)深度解析数据在内存中的存储
  • (四)库存超卖案例实战——优化redis分布式锁
  • **python多态
  • .NET Core Web APi类库如何内嵌运行?
  • .net(C#)中String.Format如何使用
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • .NET中GET与SET的用法
  • @EnableWebSecurity 注解的用途及适用场景
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [20150629]简单的加密连接.txt