axios简化操作,组件化和Vue路由

1. axios简化操作

1.1 async-await关键字

关键字用法:async用来标识函数;await用来标识请求。

async - await 是axios为了简化then()的一种全新的语法,该用法只能用到ajax请求中

1.2 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>简化axios的操作</title>
		<!-- 导入ajax的js文件 -->
		<script src="../js/axios.js"></script>
	</head>
	<body>
		<h2>简化语法的操作</h2>
		<script>
			// 1. 定义axios请求的前缀
			axios.defaults.baseURL = "http://localhost:8080/axios"
			//2. 定义函数
			async function getAll(){
				//解构赋值操作
				let {data: result} = await axios.get("/getAll")
				alert(result)
			}
			//3. 最后调用函数
			getAll()
		</script>
	</body>
</html>

2. 组件化

2.1组件说明

在VUE中 可以将一个组件,看作是一个页面. 在其中可以引入独立的样式/JS/HTML 进行单独的管理,组件可以进行复用. 组件化的思想体现了"分治思想"。

2.2 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>全局组件</title>
		<!--1. 导入js -->
		<script src="../js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- 若使用组件,在vue渲染区中使用 -->
			<add-num></add-num>
			<add-num></add-num>
		</div>
		<!-- 定义模板标签语法,必须有根标签 -->
		<template id="numTem">
			<div>
				<h2>我是一个组件</h2>
				获取到数值:{{num}}
			</div>
		</template>
		<!-- 2.定义全局组件 
		参数:组件名称;组件实体内容
		-->
		<script>
			Vue.component("addNum",{
				data(){
					return{
						num:50
					}
				},
				//页面标记
				template:"#numTem"
			})
			const app = new Vue({
				el:"#app"
			})
		</script>
	</body>
</html>

2.3 局部组件 代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>局部组件</title>
		<!-- 导入js -->
		<script src="../js/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<msg-com></msg-com>
			<msg-com></msg-com>
		</div>
		<!-- 定义的app2 ,局部组件只能在特定位置使用,所以该位置,不能解析-->
		<div id="app2">
			<msg-com></msg-com>
			<msg-com></msg-com>
		</div>
		<!-- 模板标签必须在vue渲染div外边 -->
		<template id="msgTem">
			<div>
				<h3>我是局部组件</h3>
			</div>
		</template>
		<script>
			let msgCom = {
				template:"#msgTem"
			}
			// 定义局部组件,只对当前vue对象有效
			const app = new Vue({
				el:"#app",
				components:{
					msgCom
				}
			})
		</script>
	</body>
</html>

2.4 总结

1.为什么要使用组件?

1.原来用户编辑页面时,需要引入/维护大量的JS/CSS等.如果数量很多,则导致代码结构混乱.所以需要引入组件化思想;
2.前端框架为了更好的解耦,采用了"分治"思想的构建代码.前端向后端代码结构看齐;
3.组件采用树形结构, 可以将功能小型化.单独维护;
4.组件是一个独立的个体,内部包含HTML/CSS/JS;
5.使用组件看做就是一个页面;

2.如何理解template属性?

1.template标签是组件中定义html标记的模板;
2.template标签必须有根标签div;
3.template标签最好定义在body标签内部,写法方便;

3.关于组件使用的注意事项

1. 组件的使用必须在VUE对象渲染的区域中使用;
2. 组件有全局的/有局部的.注意作用域;
3. 在html标签中使用组件时,注意大小写问题.如果是驼峰规则,则使用 "-"连接;
4. 组件必须先定义再使用;

3. Vue路由

3.1 路由说明

说明: 用户发起一个请求,在互联网中经过多个站点的跳转.最终获取服务器端的数据. 把互联网中网络的链路称之为路由. (网络用语)
VUE中的路由: 根据用户的请求URL地址,展现特定的组件(页面)信息. (控制用户程序跳转过程)

3.2 入门案例

3.2.1 步骤说明:引入JS类库;指定路由跳转链接;指定路由填充位;封装路由对象;vue对象绑定路由

3.3 路由入门案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>路由入门案例</title>
		<!-- 导入JS类库-->
		<script src="../js/vue.js"></script>
		<script src="../js/vue-router.js"></script>
	</head>
	<body>
		<div id="app">
			<h2>实现路由案例</h2>
			<!-- 定义路由的标签 -->
			<router-link to="/dog">小黄狗</router-link>
			<!-- 指定路由填充位 -->
			<router-view></router-view>
		</div>
		<!-- 定义template标签 -->
		<template id="homeDog">
			<div>
				<h3>我是小黄狗</h3>
				<img src="../img/1.jpg" />
			</div>
		</template>
		<!-- 封装路由对象 -->
		<script>
			let homePet = {
				template:"#homeDog"
			}
			let router = new VueRouter({
				routes:[
					{path:"/dog",component:homePet}
				]
			})
			// 实现路由对象绑定
			const app = new Vue({
				el:"#app",
				router
			})
		</script>
	</body>
</html>

3.4 页面效果

3.5 重定向/转发

说明:用户请求服务器时,由服务器将请求转给另一台服务器的过程,叫做转发

重定向说明:用户请求服务器时,服务器由于特殊原因告知用户应该访问服务器B,之后用户再次发起请求访问服务器B. 这个过程称之为重定向

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值