Vue介绍_day05

1.Vue JS

1.1 Vue介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

1.2 Vue结构

1.3 Vue语法

1.3.1 Vue入门案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>VUE入门案例</title>
	</head>
	<body>
		
		<!-- 
			入门案例步骤:
				1.导入vue.js文件   html下部编辑
				2.指定区域进行渲染  需要准备div vue.js代码
				3.创建VUE.js对象 指定渲染区域 动态调用
		 -->
		
		<!-- 2.指定区域 -->
		<div id="app">
			<!-- 在div中展现msg属性 
				插值表达式: {{key}}
			-->
			<h1>{{msg}}</h1>
		</div>
		
		
		<!-- 1.导入JS文件 -->
		<script src="../js/vue.js"></script>
		
		<!-- 3.创建VUE对象 -->
		<script>
			/**
			 * 语法:
			 * 		1.const 定义常量的
			 * 		2.let: 作用和var类似, 有作用域的概念
			 * 		3.var 特点:没有作用域
			 */
			const APP = new Vue({
				//1.指定区域
				el: "#app",
				//2.定义属性
				data: {
					//key:value
					msg: "您好VUE"
				}
			})
		</script>
		
	</body>
</html>

1.3.1数据显示

数据显示命令:v-text、v-html、v-pre、v-once

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>数据显示</title>
	</head>
	<body>
		<script src="../js/vue.js"></script>
		<div id="app">
			<!-- 特点: 如果页面没有渲染完成,则直接展现给用户
				插值表达式需要直接显示
				注意事项:  只有显示时采用,输入操作不可使用
				1.v-text指令: 如果页面没有渲染完成,则不显示信息
			-->
			{{msg}}
			<h1 v-text="msg"></h1>
			
			<!-- 2.v-html 直接渲染html标签 -->
			<div v-html="h3Html"></div>
			
			<!-- 3.v-pre  跳过预编译 显示标签体本身 -->
			<div v-pre>{{msg}}</div>
			
			<!-- 4.v-once只渲染一次 -->
			<div v-once>{{once}}</div>
			
		</div>
		<script>
			const APP=new Vue({
				el:"#app",
				data:{
					msg:"Hello Vue",
					h3Html:"<tr>我需要h3Html的渲染</tr>",
					once:"我只能被渲染一次"
				}
			})
		</script>
	</body>
</html>

1.4 双向数据绑定

1.4 .1 双向数据绑定案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>VUE入门案例</title>
	</head>
	<body>
		<!-- 1.导入JS文件 -->
		<script src="../js/vue.js"></script>
		<!-- 2.指定区域 -->
		<div id="app" >
			<!-- 双向数据绑定 v-model
			1.数据端---页面
			2.页面-----数据
			-->
			<input  name="msg" v-model="msg"/><br/>
	         数量:{{msg}}<br/>
			 <input name="msg2" v-model="msg" /> <br />
			 数量:{{msg}}
		</div>
		<!-- 3.创建VUE对象 -->
		<script>
			const APP = new Vue({
				el: "#app",
				data: {
					msg: "您好VUE"
				}
			})
		</script>
		
	</body>
</html>

1.4.2 MVVM设计思想

知识回顾: MVC模式 核心思想 减少代码的耦合性
M Model:封装的数据
V View 视图层: 数据的展现
C Contro 控制层 程序的流转的过程
衍生: 3层代码的结构 Controller—Service–Mapper/Dao
针对于: 后端服务器.

MVVM思想说明:
M: Model 封装的数据. 数据层
V: View 数据的展现 视图层
VM: viewModel视图数据的控制层 控制数据流转
MVVM设计思想是前端模拟后端为了解耦的一种设计思想.

双向数据绑定原理
原理步骤:
1.用户修改页面时,通过DOM的监听器感知用户的修改行为,之后通过虚拟DOM对象,第一时间更新Model中的属性.
2.当数据发生变化,由虚拟DOM根据数据绑定的规则,第一事件通知真实的DOM对象.至此页面数据发生变化.
在这里插入图片描述

1.4.3 事件绑定

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>VUE入门案例</title>
	</head>
	<body>
		<script src="../js/vue.js"></script>
		<div id="app" >
			<!-- v-on: 事件绑定
			  1、语法: v-on:click=“函数、直接计算”
			  2、v-on:可以简化为@ 
			-->
			<h3>{{num}}</h3>
			<button v-on:click="num++">自增</button><br/>
			<button @click="num++">自增</button><br/>
			<button @click="addNum()">计算</button><br/>
			<button @click="addNum2()">减减</button>
			<!-- 如果没有参数()可以省略 -->
		</div>
		<script>
			const APP = new Vue({
				el: "#app",
				data: {
					num : 100
				},
				methods:{
					// K:V  方法名:方法体
					addNum:function(){
						this.num++
					},
					addNum2(){//方法简化--JS脚本支持
						--this.num
					}
				}
			})
		</script>
		
	</body>
</html>

1.4.4 按键触发

在这里插入图片描述

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>按键触发</title>
	</head>
	<body>
		<script src="../js/vue.js"></script>
		<div id="app" >
			<h1>用户数据:{{num}}</h1><br />
			<input  v-model="num2"/><br>
			<!-- 按钮实现触发-->
			<button @click="math">提交</button><br />
			<!-- 回车实现触发 
			@keydown 按下触发
			@keyup 弹起来触发
			@keypress 小键盘触发
			-->
			<input  v-model="num2"  @keyup.enter="math" /><br>
			<input  v-model="num2"  @keyup.space="math" /><br>
		</div>
		<script>
			const APP = new Vue({
				el: "#app",
				data: {
					num:100,
					num2:0
				},
				methods:{
					math(){
						this.num+=parseInt(this.num2) 
					}
				}
			})
		</script>
		
	</body>
</html>

1.4.5 计算器案例

在这里插入图片描述

<!DOCTYPE html>
<!-- 
   
 -->
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script src="../js/vue.js"></script>
		<div id="app">
			 <h1>计算器</h1>
			 <h2>:{{count}}</h2>
			 num1:
			 <input v-model="num1" type="number"/><br/><br/>
			 num2:
			 <input v-model="num2" type="number" @keyup.enter="addNum()"/><br/>
			 <button @click="addNum">计算和</button>

		</div>
		<script>
			const APP=new Vue({
				el:"#app",
				data:{
					count:0,
					num1:0,
					num2:0
				},
				methods:{
					addNum(){
						this.count=parseInt(this.num1)+parseInt(this.num2)
					}
				}
			})
		</script>
	</body>
</html>

1.4.6 按键修饰符

1.4.6.1 阻止冒泡 .stop / 阻止默认事件 .prevent
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script src="../js/vue.js"></script>
		<div id="app" @click="num++">
			    <!--停止冒泡:@click.stop=""-->
				<h1>数值{{num}}</h1><br/>
				<button @click.stop="num++">提交</button>  
				 <hr/>
				 <!-- 要求:点击标签不跳转,同时触发事件@click.prevent="" -->
				 <a href="http://baidu.com" @click.prevent="num">百度</a>
		</div>
		<script>
			const APP=new Vue({
				el:"#app",
				data:{
				 num:100
				},
				methods:{

				}
			})
		</script>
	</body>
</html>

2.SpringMVC参数取值详细说明

2.2 对象方式

2.2.1 前端页面对象封装

<!DOCTYPE html>
               <!--  ajax参数传递 :
				1、简单传递:根据id=1 查询传递
				 -->
<html>
	<head>
		<meta charset="utf-8">
		<title>springMVC参数传递</title>
		<script src=../jquery-2.0.0.min.js></script>
	     
		<!-- 请求类型:
		get
		post
		put
		delete -->
	
		<script>
	// 		$(function(){
	// 			let url="http://localhost:8090/run/test3"
	// 	         let user={
	// 				 id:1,
	// 				 name:"黑熊精",
	// 				 age:200,
	// 				 sex:"男"
	// 			 }
	// 			$.get(url,user,
	// 			function(result){//回调函数
	// 				console.log(result);
	// 			})
	
	// 		})
			$(function(){
				let url="http://localhost:8090/run/test2"
			     let data={
					id:6
				 }
				$.get(url,data,
				function(result){//回调函数
					console.log(result);
				})
				
			})
		</script>
	</head>
	<body>
	</body>
</html>

2.2.1后端参数接收

@GetMapping("test2")
    public User test2(Integer id)
    {
        User user = userService.selectById(id);
        return user;
    }

    @GetMapping("test3")
    public User test3(User user){
        System.out.println(user);
        return user;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值