前端进阶:Vue.js

目录

框架:

助解:

框架:

VUE

什么是Vue.js?

Vue.js优点

Vue安装

方式一:直接用<script>引入

方式二:命令行工具

第一个Vue程序

代码

代码解释: 

运行

Vue指令

v-text  v-html

v-text

v-html

代码

运行

v-bind   v-on

v-on

v-bind

代码

运行

v-model

代码

运行

v-if v-show

v-if 

v-show

代码

运行 

Vue生命周期

代码

运行


框架:

助解:

现在盖高楼大厦是如何盖的?

钢筋混凝土浇筑框架

然后在框架结构的基础上再次进行装修

框架结构(把很多的基础功能已经实现了,水,电,网线,下水...)

框架:

在语言的基础上,把一些常用的重复出现的功能进行封装,使得开发人员可以更高效的进行开发。

html、css、js

前端框架

js框架(对js进行封装,简化代码方便操作)

UI框架(把一些常用的组件(表单,表格,按钮...)进行封装)

Java后端框架

VUE

什么是Vue.js?

Vue是一个前端js框架,简化js操作,

其中MVVM思想实现数据双向绑定(标签展示和js中的数据),

任意一方发生改变,框架都会自动的更新另一方,

程序员不需要直接操作DOM对象(标签)

Vue.js优点

效率高

生态丰富,学习成本低

vue.js只是对js进行了封装,并不是代替js,基础的语法还是js

Vue安装

方式一:直接用<script>引入

下载Vue.js并导入js文件

<script src = "js/vue.js"></script>

方式二:命令行工具

命令行输入:

$ npm install vue@^2

第一个Vue程序

1. 导入开发版本的 Vue.js

2. 创建 Vue 实例对象,设置 el 属性和 data 属性

3. 使用简洁的模板语法把数据渲染到页面上

代码

 <!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入vue封装的js文件 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		
		<div id="app">
		  <!-- 插值表达式  直接可以将data中定义的数据获取-->
		  {{ message }}
		  {{a}}
		  <div>
			{{message}}
		  </div>
		</div>
				
		<script>
			//new Vue 对象
			var app = new Vue({
			  el: '#app',//将id为app的标签与Vue对象进行绑定
			  data: {//data中用来定义与标签进行双向绑定的数据,可以定义多组的
			    message: 'Hello Vue!',
				a:10
			  }
			})
		</script>
	</body>
</html>

代码解释: 

1、{{ 变量 }} ,插值表达式获取 data 数据

2、new Vue();创建 Vue 对象(VM 对象)

3、el:数据挂载的 dom 对象

     Vue 会管理 el 选项命中的元素及其内部的后代元素

     可以使用其他的选择器,但是建议使用 ID 选择器

     可以使用其他的闭合标签,不能使用 HTML 和 BODY

4、data:{ message:’hello world’} model 数据

     Vue 中用到的数据定义在 data 中

     data 中可以写复杂类型的数据,如对象,数组

运行

Vue指令

指令带有前缀 v- 开头,以表示它们是 Vue 提供的特殊属性。

v-text  v-html

<P>{{msg}}</P>  插值表达插入变量。不会覆盖

v-text,v-html   会覆盖标签体中的内容

v-text

v-text 会把内容当作文本处理

<p v-text="msg"></p>  

v-html

v-html  会把内容当作 html的内容处理,可以解析标签

<p v-html="msg"></P>

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入vue封装的js文件 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<P>{{msg}} vue</P>
			<p v-text="msg"></p>
			<p v-html="msg"></p>
		</div>
		
		<script> 
			var app = new Vue({
			  el: '#app', 
			  data: { 
			    msg: '你好!', 
			  }
			})
		</script>
	</body>
</html>

运行

v-bind   v-on

v-on

v-on:事件名  为标签添加事件

事件名不需要写 on 指令可以简写为@

v-bind

v-bind:标签属性名="变量" 可以动态的来改变属性的值,只需要在js中改变属性的值即可

作用是为元素绑定属性

完整写法是 v-bind:属性名

简写的话可以直接省略 v-bind,只保留:属性名

代码

​<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入vue封装的js文件 -->
		<script src="js/vue.js"></script>
		<style type="text/css">
			.imgcss{
				width: 100px;
				height: 100px;
			}
		</style>
	</head>
	<body>
		<div id="app">
			<img v-bind:src="img">
			<img :src="img">
            <!-- 为class属性动态添加取消样式 -->
			<img :src="img" :title="title" v-bind:class="{imgcss:isActive}">
			<input type="button" value="改变1"/ v-on:click="test1()" >
			<input type="button" value="改变2"/ @click="test2('aaaaaa')" >
		</div>
		
		<script> 
			var app = new Vue({
			  el: '#app', 
			  data: { 
				  img:"img/1.jpg",
				  title:"这不是花",
				  isActive:true
			  },
			  methods:{  //定义函数 可以在函数中使用this关键字访问data中的数据改变变量值
				  test1(){
				    this.img = "img/2.jpg";
					this.title = "这是一朵花";
					this.isActive = false;
				  },
				  test2(a){
					this.img = "img/1.jpg";
					this.title = a; 
				    this.isActive = true;
				  }
			  }
			})
		</script>
	</body>
</html>

​

运行

初始态

test1

test2

v-model

v-model="msg" 可以将输入框中value值 与 vue中数据进行绑定
当输入框值发生改变时,会自动的更新到数据中

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入vue封装的js文件 -->
		<script src="js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<p>{{msg}}</p>
			<input type="text" v-model="msg"/>
		</div>
		
		<script> 
			var app = new Vue({
			  el: '#app', 
			  data: { 
			    msg: "", 
			  }
			})
		</script>
	</body>
</html>

运行

v-if v-show

v-if v-show 都可以控制标签是否显示或隐藏

v-if 

v-if隐藏标签时直接将标签从网页中删除,大量操作开销较大

v-show

v-show隐藏标签时只是改变了标签的display值

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入vue封装的js文件 -->
		<script src="js/vue.js"></script>
		</style>
	</head>
	<body> 
		<div id="app">
			<img :src="img" v-if="isShow"/>
            <img :src="img" v-show="isShow"/>
		</div>
		
		<script> 
			var app = new Vue({
			  el: '#app', 
			  data: { 
				  img:"img/1.jpg",
				  isShow:true
			  },
			  methods:{ 
				 
			  }
			})
		</script>
	</body>
</html>

运行 

Vue生命周期

每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数 据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时 在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添 加自己的代码的机会。

beforeCreate: function () { console.log('beforeCreatea ’); },

created: function () { console.log('createda ' ); },

beforeMount:function(){ console.log('beforeMounta’); },

mounted:function(){ console.log('mounteda’); }

代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title></title>
		<!-- 导入vue封装的js文件 -->
		<script src="js/vue.js"></script>
		</style>
	</head>
	<body>
		<div id="app">
		</div>
		
		<script> 
			var app = new Vue({
			  el: '#app', 
			  data: {

			  },
			  methods:{  

			  },//vue对象的声明周期钩子函数,在生命周期的每个阶段提供一个函数,供我们执行某些需要的操作
			  beforeCreate() {
			  	console.log("vue对象创建之前")
			  },
			  created() {
			  	console.log("vue对象创建完成")
			  },
			  beforeMount() {
			  	console.log("vue对象与标签绑定之前")
			  },
			  mounted() {
			  	console.log("vue对象与标签绑定之后")//常用的,当vue对象创建成功后,与标签绑定成功后执行我们想要的操作
				                                   //类似于之前的onlood事件
				this.test();								   
			  }
			})
		</script>
	</body>
</html>

运行

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

git 中有关 old mode 100644、new mode 10075的问题解决小结

问题&#xff1a; 同一个文件被修改后&#xff0c;最后代码没有变&#xff08;代码刚开始修改了&#xff0c;最后又删除还原了&#xff09;&#xff0c;文件变了&#xff0c;导致提交了一个空文件 git diff 提示 filemode 发生改变&#xff08;old mode 100644、new mode 1007…

RabbitMQ进阶篇

文章目录 发送者的可靠性生产者重试机制实现生产者确认 MQ的可靠性数据持久化交换机持久化队列持久化消息持久化 Lazy Queue(可配置~)控制台配置Lazy模式代码配置Lazy模式更新已有队列为lazy模式 消费者的可靠性消费者确认机制失败重试机制失败处理策略 业务幂等性唯一消息ID业…

layui-页面布局

1.布局容器 分为固定和完整宽度 class layui-container 是固定宽度 layui-fluid是完整宽度

傻瓜交换机多网段互通组网、设备无法配置网关案例

记录一下&#xff1a; 一、傻瓜交换机多网段互通组网 1、客户在核心交换机上创建了VLAN10&#xff0c;VLAN20。 VLAN10&#xff1a;IP192.168.10.254 VLAN20&#xff1a;IP192.168.20.254 在核心交换机下挂了一台傻瓜交换机&#xff0c;傻瓜交换机接入了一台OA服务器IP&#…

从零开始:在Windows上部署大型模型

这是一个超详细安装教程&#xff0c;介绍了在 Window 电脑上如何部署 Qwen1.5 大模型。本文还涉及到 Python 及其环境的配置。 适合对象&#xff1a;有点后端编程基础&#xff0c;没有 Python 基础。 需要环境&#xff1a;Window10/11&#xff0c;支持 Cuda 的 Nvidia 显卡。…

数据结构与算法-动态规划-最长回文子串

最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s "babad" 输出&#xff1a;"bab" 解释&#xff1a;"aba" 同样是符合题意的答案。示例 2&#xff1a; 输入&#xff1a;s "…

识图ACWP.BCWS.BCWP

将三个概念想象成三个角色&#xff08;如&#xff1a;勇士、法师、盗贼&#xff09;&#xff0c;其中&#xff1a; ACWP是勇士&#xff0c;代表实际力量&#xff08;实际成本&#xff09;&#xff1b;BCWS是法师&#xff0c;代表预期魔法&#xff08;预算成本工作量预测&#x…

vscode移动侧边栏到右边

vscode移动侧边栏到右边&#xff0c;的简单办法 直接在侧栏上单击右键&#xff0c;选择向右移动主侧栏

有哪些好的 Stable Diffusion 提示词(Prompt)可以参考?

Docker 作图咒语生成器 docker-prompt-generator 是一个开源项目&#xff0c;可以利用模型反推出提示词&#xff0c;让你偷偷懒&#xff0c;无需琢磨怎么写prompt&#xff0c;只需要找一个差不多的模型反推一下&#xff0c;直接用就好了&#xff0c;支持支持 MidJourney、Stab…

Go - 9.struct 使用指南

目录 一.引言 二.struct 定义 三.struct 实践 1. 初始化 struct 2. 嵌套 struct 3. func 与 struct 四.struct 进阶 1.Json Tags 2.Other Tags 五.总结 一.引言 在编程中&#xff0c;结构体&#xff08;struct&#xff09;是一种聚合数据类型&#xff0c;用于将多个…

文献解读-长读长测序-第十四期|《作为了解棉花驯化的资源,印度棉(Gossypium herbaceum L. Wagad)基因组》

关键词&#xff1a;基因组&#xff1b;长读长测序&#xff1b;棉花基因组&#xff1b; 文献简介 标题&#xff08;英文&#xff09;&#xff1a;The Gossypium herbaceum L. Wagad genome as a resource for understanding cotton domestication标题&#xff08;中文&#xff…

【HTML入门】列表与表格

文章目录 前言一、列表与表格是什么&#xff1f;列表表格 二、使用标签列表标签表格标签 三、组合情况列表的组合表格的组合 四、示例代码总结 好的&#xff0c;以下是一个关于HTML列表与表格的文章示例&#xff1a; 前言 随着网页开发的普及&#xff0c;HTML成为了构建网页的…

零基础学习MySQL---MySQL入门

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、什么是数据库 问&#xff1a;存储数据用文件就可以了&#xff0c;为什么还要弄个数据库呢&#xff1f; 这就不得不提…

Java面试八股文

一、Redis 1. 使用场景 &#xff08;1&#xff09;Redis的数据持久化策略有哪些 RDB&#xff1a;全称Redis Database Backup file&#xff08;Redis数据备份文件&#xff09;&#xff0c;也被叫作Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故…

Chapter9 更复杂的光照——Shader入门精要学习笔记

Chapter9 更复杂的光照 一、Unity的渲染路径1.渲染路径的概念2.渲染路径的类型①前向渲染路径a. 前向渲染路径的原理b. Unity中的前向渲染c. 两种Pass ②延迟渲染路径a. 延迟渲染路径的原理b. Unity中的延迟渲染c. 两种Pass ③顶点照明渲染路径 二、Unity的光源类型1.光源类型①…

毫秒级相应逆流检测电表安科瑞防逆流电能表

家庭储能系统 生态环境与人们的日常生活密切相关&#xff0c;越来越多的家庭开始重视居住环境的绿色、环保、智能及可持续性&#xff0c;并采取具体行动。截至2023年&#xff0c;欧洲太阳能发电容量已超200GW&#xff0c;家庭储能系统的安装量呈爆炸性增长。 用户痛点及需求 …

前端基础:JavaaScript(篇二)

目录 内置对象 String字符串 属性 代码 运行 方法 代码 运行 日期 代码 运行 Math 代码 运行 数组 定义 属性 代码 运行 方法 join(分隔符>) &#xff1a; 代码 运行 reverse()&#xff1a; 代码 运行 sort() &#xff1a; 代码 运行 事件 …

有哪些手持小风扇品牌推荐?五大手持小风扇诚意推荐!

在炎炎夏日&#xff0c;一款便携且高效的手持小风扇无疑是消暑的必备神器。为了帮助大家轻松应对酷暑&#xff0c;我们精心挑选了五大手持小风扇品牌进行诚意推荐。这些品牌不仅拥有出色的降温效果&#xff0c;更在外观设计、便携性、续航能力及操作便捷性上表现卓越。接下来&a…

电子邮件OTP验证身份认证接口API服务商比较

电子邮件OTP验证身份认证接口API服务商如何正确选择&#xff1f; 电子邮件OTP验证是一种广泛应用且安全的身份认证方式。AokSend将比较几家主要的电子邮件OTP验证身份认证接口API服务商&#xff0c;帮助企业选择合适的解决方案。 电子邮件OTP&#xff1a;验证优势 可以为用户…