CGB2105-Day-05笔记

1、VUE.JS

1.1 VUE.JS介绍

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

1.2 VUE组件说明

在这里插入图片描述

1.3 VUE基本语法

1.3.1 入门案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue入门案例</title>
	</head>
	<body>
		<div id="app">
			<!-- 在div中展现msg属性 
				插值表达式: {{key}}
			-->
			<h1>{{msg}}</h1>
			<h1>{{name}}</h1>
		</div>
		<script src="../js/vue.js"></script>
		<script>
			/**
			 * 	语法:
			 * 		1、const 定义常量
			 * 		2、let 作用和var类似,有作用域概念
			 * 		3、var 特点:没有作用域
			 */
			// const app = new Vue({
			// 	el: '#app',
			// 	data: {
			// 		msg: "阿巴阿巴阿巴阿巴"
			// 	}
			// })
			
			const app = new Vue({
				// 指定区域
				el: "#app",
				// 定于属性
				data: {
					name: '李知恩'
				}
			})
			
		</script>
	</body>
</html>

1.4 数据显示

命令: v-text/v-html/v-once/v-pre 指令

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>Vue入门案例</title>
	</head>
	<body>
		<div id="app">
			<!-- 特点: 如果页面没有渲染完成,则直接展现给用户
					   插值表达式需要直接显示
				 注意事项:  只有显示时采用,输入操作不可使用
			 -->
			<!-- 1.v-text指令: 如果页面没有渲染完成,则不显示信息 -->
			{{name}}
			<h1 v-text="name"></h1>
			<!-- 2、渲染HTML标签 -->
			<div v-html="h3htmld"></div>
			<!-- 3.v-pre  跳过预编译 显示标签体本身 -->
			<div v-pre>{{msg}}</div>
			<!-- 4.v-once 只渲染一次 -->
			<div v-once>{{name}}</div>
		</div>
		<script src="../js/vue.js"></script>
		<script>			
			const app = new Vue({
				el: "#app",
				data: {
					name: '李知恩',
					h3htmld: '<h3>渲染H3标签</h3>',
					msg: '今天你吃了吗'
				}
			})
		</script>
	</body>
</html>

1.5 双向数据绑定

1.5.1 双向数据绑定代码

双向数据绑定: 实现了页面与数据的绑定. 页面变数据变 / 数据变页面变.

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

1.5.2 MVVM 设计思想

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

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

1.5.3 双向数据绑定原理

原理步骤:

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

1.6 事件绑定

语法:

	v-on:click="函数/直接进行计算"

具体代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>事件绑定</title>
	</head>
	<body>
		<div id="app">
			<!-- 
				需求:实现数据的自增操作
				语法:
					1、v-on:click="函数"
					2、v-on:可简化为@表示
			 -->
			<h1>数值:{{num}}</h1>
			<!-- 原始写法 -->
			<!-- <button v-on:click="num++">自增</button> -->
			<!-- 简化写法 -->
			<button @click="num++">自增</button>
			<button @click="addNum">计算</button>
			<button @click="unaddNum">自减</button>
		</div>
		<script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: '#app',
				data: {
					num: 100
				},
				methods: {
					addNum: function(){
						this.num++
					},
					unaddNum(){
						this.num--
					}
				}
			})
		</script>
	</body>
</html>

1.7 按键触发机制

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>按键触发</title>
	</head>
	<body>
		<div id="app">
			<!-- 
				 语法:	
					1.v-on:keydown="" 按下触发
					2.v-on:keyup=""   弹起来触发
					3.v-on:keypress="" 小键盘触发
				 按键支持:
					.enter  .tab
					.delete (捕获“删除”和“退格”键)
					.esc   .space
					.up .down .left .right
				-->
			<h1>用户数据:{{num}}</h1><br>
			<!-- 回车触发 -->
			<!-- <input type="text" v-on:keyup.enter="addNum" v-model="num2"/> -->
			<!-- 空格触发 -->
			<input type="text" v-on:keyup.space="addNum" v-model="num2"/>
			<button @click="addNum">计算</button>
		</div>
		<script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: '#app',
				data: {
					num: 100,
					num2: 0
				},
				methods: {
					addNum(){
						this.num += parseInt(this.num2)
					}
				}
			})
		</script>
	</body>
</html>

1.8 简单计算器练习

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>模板</title>
	</head>
	<body>
		<div id="app">
			<!-- 要求
				1.准备两个文本输入框 num1/num2
				2.要求准备一个按钮 "计算" 当点击按钮时实现
				  count=num1+num2
				  将得到的结果通过 总数输出count
				3.当输入num2时可以通过回车按键 计算.
				注意事项: input框默认是字符串
			 -->
			<h1>计算总数</h1>
			<input type="text" v-model="num1" /><br>
			<input type="text" v-model="num2" /><br>
			<h1>总数:{{count}}</h1>
			<button @click="sum">计算</button>
		</div>
		<script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: '#app',
				data: {
					num1: 0,
					num2: 0,
					count: 0
				},
				methods: {
					sum(){
						this.count = parseInt(this.num1) + parseInt(this.num2)
					}
				}
			})
		</script>
	</body>
</html>

1.9 按键修饰符

1.9.1 阻止冒泡 .stop

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>按键修饰符</title>
	</head>
	<body>
		<div id="app">
			<!-- 难点: 元素可能需要嵌套,事件可能嵌套
				 说明: 如果事件嵌套则必然带来事件的冒泡.
				 解决方案: 阻止事件冒泡  .stop属性
			 -->
			<div>
				<h1>数值:{{num}}</h1>
				嵌套结构:
				<button @click.stop="num++">计算</button>
				<hr color="#ff00ff">
				<!--
					需求2:
					a标签作用中的href的跳转是默认规则
					要求:用户点击a标签不跳转页面,同时触发事件
					解决:阻止标签的默认行为,@click.prevent
				 -->
				<a href="http://www.jd.com" @click.prevent="aClick">京东商城</a>
			</div>
		</div>
		<script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: '#app',
				data: {
					num: 0
				},
				methods: {
					aClick(){
						console.log("事件触发")
					}
				}
			})
		</script>
	</body>
</html>

1.9.2 阻止默认行为 .prevent

<!--
	需求2:
	a标签作用中的href的跳转是默认规则
	要求:用户点击a标签不跳转页面,同时触发事件
	解决:阻止标签的默认行为,@click.prevent
-->
<a href="http://www.jd.com" @click.prevent="aClick">京东商城</a>

2、SpringMVC 参数取值详情说明

2.0 Servlet

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
总结: Servlet是java与前端页面进行数据交互的一种机制

核心对象:

  1. request对象 封装用户请求的参数/请求头/请求全部内容
  2. response对象 封装用户响应信息

2.1 Servlet获取参数规则

 /**
     * 注意事项: 如果后端服务器没有匹配的方法,也会报跨域错误.
     * URL:http://localhost:8090/getUserById?id=1&age=18
     * 参数: id=1
     * 返回值: User对象
     * servlet特点:
     *  1.获取的数据都是String类型
     */
    @GetMapping("/getUserById")
    public User getUserById(Integer id){
       //1.SpringMVC框架通过Servlet中request对象,根据参数名称获取值
        // String id = request.getParameter("age");
        //2.SpringMVC根据已知的数据类型 自动的实现数据转化
        return null;
    }



    /*@GetMapping("/getUserById")
    public User getUserById(HttpServletRequest request,
                            HttpServletResponse response){
        //1.参数获取 每个参数都需要手动获取
        String id = request.getParameter("id");
        String age = request.getParameter("age");

        //2.数据类型转化
        int intId = Integer.parseInt(id);
        System.out.println("根据ID查询数据库~~~~~");
        return null;
    }*/

2.2 对象方式

2.1.1 页面对象封装

在这里插入图片描述

2.1.2 后端参数接受问题

 /**
     * URL: http://localhost:8090/getUserByUser
     * 参数: user对象的数据
     * 返回值: User
     */
    @GetMapping("/getUserByUser")
    public User getUserByUser(User user){
        //1.SpringMVC如果解析到参数是对象 先获取其中的Get方法
        // getId()/getName()......
        //2.将方法get去除首字母小写~~~id1111/name/age/sex
        //3.实例化一个User对象之后调用setxxx()方法实现赋值
        //4.最终方法中获取一个实例化的User对象
        //String id = request.getParameter("id");
        return user;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

直男编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值