路由的概念,前端路由的实现和vueRouter的使用(上)

1、路由的概念

路由的本质就是一种对应关系(此处的路由含义同之前nodejs的路由),根据不同的URL请求,返回对应不同的资源。那么url地址和真实的资源之间就有一种对应的关系,就是路由。

路由分为:后端路由前端路由

  • 后端路由:由服务器端进行实现并实现资源映射分发(nodejs、jsp、php等)

    • 概念:根据不同的用户URL请求,返回不同的内容(地址与资源产生对应关系)

    • 本质:URL请求地址与服务器资源之间的对应关系(映射)

 

  • 前端路由:根据不同的事件来显示不同的页面内容,是事件与事件处理函数之间的对应关系

    • 概念:根据不同的用户事件,显示不同的页面内容(地址与事件产生对应关系)

    • 本质:用户事件与事件处理函数之间的对应关系

 记住一句话:有请求就应该有响应,只不过区别在于,之前node是响应资源,现在在前端中通过事件来进行响应。

2、前端路由实现

 

面试题:请你说出前端路由是怎么实现的?或者有哪几种实现方式?

答:前端路由模式有两种实现方式:hash方式、history方式。

 核心思想:通过监听地址栏的变化事件来实现资源的动态显示

前端路由有2种模式:

  • hash模式

  • hash路由模式是这样的:http://xxx.abc.com/#/xx。 有带#号,后面就是hash值的变化。改变后面的hash值,它不会向服务器发出请求,因此也就不会刷新页面。并且每次hash值发生改变的时候,会触发hashchange事件。因此我们可以通过监听该事件,来知道hash值发生了哪些变化。

    window.addEventListener('hashchange', ()=>{  // 通过 location.hash 获取到最新的 hash 值  console.log(location.hash); })

  • 形如:http://xxx.abc.com/xx/yy/zz。HTML5的History API为浏览器的全局history对象增加了该扩展方法。它是一个浏览器(bom)的一个接口,在window对象中提供了onpopstate事件来监听历史栈的改变,只要历史栈有信息发生改变的话,就会触发该事件。
     

 history.pushState({},title,url); // 向历史记录中追加一条记录
history.replaceState({},title,url); // 替换当前页在历史记录中的信息。
window.addEventListener('popstate', function(event) {
    console.log(event)
})

注:浏览器地址没有#, 比如(http://localhost:3001/a); 它也一样不会刷新页面的。但是url地址会改变。但它在服务器没有配置的情况下,不能手动刷新,否则返回404页面

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值