三分钟超级简单易上手的路由SPA实现思路~~

今日分享内容

一、SPA简介

SPA是什么?

 二、路由实现思路

第一步:引入路由js的依赖

第二步:创建自定义组件

第三步: 定义路由与组件的对应关系

第四步:生成路由对象然后传 `routes` 配置

第五步:将vue对象挂载到vue实例中

第六步:定义锚点 

第七步:触发锚点事件


一、SPA简介

SPA是什么?

用于单页面Web应用(single page application,SPA),就是只有一个Web页面的应用,是加载单个HTML页面,并在用户与应用程序交互时动态更新该页面的Web应用程序。

 单页面应用程序:
         只有第一次会加载页面, 以后的每次请求, 仅仅是获取必要的数据.然后, 由页面中js解析获取的数据, 展示在页面中。
 传统多页面应用程序:
           对于传统的多页面应用程序来说, 每次请求服务器返回的都是一个完整的页面 
 。

对于以前 使用的jsp做页面的时候,一个页面会有很多个jsp组成,现在我们点击导航栏,不再是跳转页面,通过路由的方式,跳转到组件,将使用SPA用于html页面处理多结构复杂的组件通信问题。

优势:

     ①减少了请求体积,加快页面响应速度,降低了对服务器的压力   
     ②更好的用户体验,让用户在web app感受native app的流畅


  二、路由实现思路

首先进入官网BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务

找到相对应的js版本,

第一步:引入路由js的依赖

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

第二步:创建自定义组件

 const Home = Vue.extend({});

注意:

         ①extend是构造一个组件的语法器. 你给它参数,他给你一个组件,然后这个组件你可以作用到Vue.component这个全局注册方法里,也可以在任意vue模板里使用car组件。

        ②也可以用以前的方式创建和获得组件,效果也是一样的。
           Vue.component("button-counter", {...});//创建组件
       var ButtonCounter = Vue.component('button-counter');//获得组件

第三步: 定义路由与组件的对应关系

 var routes = [{path: '/about',component: About}];

 注意:根路径“/”

第四步:生成路由对象然后传 `routes` 配置

  const router = new VueRouter({routes:routes});

注意:

         route和router的区别
         route:路线
         router:路由器
         路由器中包含了多个路线

第五步:将vue对象挂载到vue实例中

var vm = new Vue({router: router}).$mount('#app'); 

第六步:定义锚点 

 <router-view></router-view> 

第七步:触发锚点事件

      <!-- 使用RouterLink组件导航. -->
      <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
      <!-- 通过传入 `to` 属性指定链接. -->
      <router-link to="/home">首页</router-link>

步骤解析如图所示:

代码块展示:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<!-- 引入vue的js -->
		<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js"></script>
		<!-- 1、引入路由js依赖 -->
		<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/2.6.0/vue-router.js"></script>
		<title>1、路由SPA</title>
	</head>
	<body>
		<!-- 定义边界 -->
		<div id="app">
			<!-- 7、触发锚点事件 -->
			<router-link to="/home">首页</router-link>
			<router-link to="/about">关于</router-link>
			<!-- 6、定义锚点 -->
			<router-view></router-view>
		</div>
		<script type="text/javascript">
			///2、定义组件  --->首页对应的组件、关于对应的组件
			// const/let/var
			const Home = Vue.extend({
				template:'<div>这是首页内容,展示最新的10篇博客</div>'
			})
			const About = Vue.extend({
				template:'<div>这是关于本站显示的内容,本站的发展史。。。。</div>'
			})
			// 3/定义路由与组件的对应关系
			let routes = [
				{path:'/home',component:Home},
				{path:'/about',component:About},
			]
			// 4、生成路由对象
			const router = new VueRouter({routes:routes})
			new Vue({
				el:'#app',
				router,//5、将vue对象挂载到vue实例中
				data(){
					return{
						msg:'hello,我是一杯咖啡!'
					}
				}
			})
		</script>
	</body>
</html>

 运行效果展示:

当点击首页时会出现以下效果

 点击关于时:


 三、无痕浏览 

replace 

 


 今日分享内容到此结束,希望对您有所帮助喔~

预告下期内容:【nodeJS环境搭建】

我们下期再见!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是利用51单片机实现数码管倒计时的代码: ```c #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar code table[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; // 数码管显示0-9的编码表 void delay(uint i) // 延时函数 { while (i--); } void main() { uchar minute = 3, second = 0; // 初始化倒计时的时间 while (1) { P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[minute / 10]; // 显示分钟的十位 P2 = 0x01; // 打开数码管,显示分钟的十位 delay(1000); // 延时1秒 P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[minute % 10]; // 显示分钟的个位 P2 = 0x02; // 打开数码管,显示分钟的个位 delay(1000); // 延时1秒 P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[second / 10]; // 显示秒钟的十位 P2 = 0x04; // 打开数码管,显示秒钟的十位 delay(1000); // 延时1秒 P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[second % 10]; // 显示秒钟的个位 P2 = 0x08; // 打开数码管,显示秒钟的个位 delay(1000); // 延时1秒 if (--second == 0xff) // 秒钟减1,如果减到0,则分钟减1 { second = 59; if (--minute == 0xff) // 分钟减1,如果减到0,则倒计时结束 { break; } } } while (1); // 倒计时结束,停在这里 } ``` 需要注意的是,本代码中的延时函数是通过循环实现的,因此可能会有一定的误差。如果需要更精确的延时,可以使用定时器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值