单页应用中,只存在一个HTML文件,网页的标签,是通过title标签显示的,我们在单页应用中如何修改?

JS操作:

window.document.title = "标签名称"

也许一两个没问题,但是我们的Vue组件越来越多,修改就难了

所以就需要路由守卫了

钩子函数:

beforeEach
afterEach

这两个函数用于路由改变的前后触发执行

在我们的index.js中配置meta对象,这是网页的元信息标签

import Vue from 'vue';
import VueRouter from "vue-router"; // 导入路由插件 import home from "../components/home";
import sample from "../components/sample";
import news from "../components/news";
import msg from "../components/msg"; Vue.use(VueRouter); //注入路由插件
const routes = [
{
path : '/home',
component : home,
meta : { title : "主页" },
children : [ // 配置子路由
{ path : 'news/:id', component : news, meta : { title : "新闻页" }, },
{ path : 'msg', component : msg, meta : { title : "消息页" }, }
]
}, { path : '/sample', component : sample, meta : { title : "样本页" }, },
]; // 定义路由
const router = new VueRouter({ // 创建路由实例
routes,
mode : 'history'
});
export default router; // 导出路由实例

然后编写路由的钩子方法:

// 创建路由实例,使用路由守卫
router.beforeEach((to,from,next) => {
// to 目标路由对象,from 当前路由对象,next该方法执行后进入
window.document.title = to.meta.title;
next();
});

效果:

或者设置统一的拦截处理

【Promise】

ES6的特性之一,是异步编程的一种解决方案

回调地狱问题:

A请求加载数据a并且包含下一个B请求

B请求加载数据b并且包含下一个C请求

C请求加载数据c并且包含下一个D请求

D请求加载数据d并且包含下一个E请求

如此往复:

程序可以正常执行,但是这代码快要起飞了

不好维护,写的难看。

未写完,暂停

【Vue】13 VueRouter Part3 路由守卫的更多相关文章

  1. 060——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 059——VUE中vue-router之路由嵌套在文章系统中的使用方法:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 057——VUE中vue-router之路由参数默认值的设置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 056——VUE中vue-router之路由参数的验证处理保存路由安全

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. 055——VUE中vue-router之路由参数的随意设置与伪静态链接地址处理:

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 解决vue组件内前置路由守卫beforeRouteEnter无法获取上下文this

    问题描述 vue框架,只有在报名页面报名成功,然后自动跳转到订单详情,才弹出一个引流弹窗,其他情况均不弹出,我就想到使用vue 的组件内前置守卫beforeRouteEnter来实现.beforeRo ...

  7. VUE三 vue-router(路由)详解

    前端路由 根据不同的 url 地址展示不同的内容或页面,无需依赖服务器根据不同URL进行页面展示操作 优点 用户体验好,不需要每次都从服务器全部获取,快速展现给用户 缺点 使用浏览器的前进,后退键的时 ...

  8. vue项目中的路由守卫

    路由守卫的意义就相当于一个保安一样,作用很大,在实际的项目中运用也是不少,也就是当客户在登陆自己账号的时候,有可能存在客户有啥事的时候,自己后台或者pc的关闭全部浏览器,没有点击退出登录,或者在退出登 ...

  9. vue之vue-router嵌套路由

    1.定义路由 routes: [ { path: '/product', //第一层路由 name: 'product', component: Vproductcontent,//父组件渲染的是子组 ...

  10. Vue配置路由和传参方式及路由守卫!

    安装路由 npm i vue-router -S 引入路由 import VueRouter form VueRouter 注入路由模块 Vue.use(VueRouter) 定义路由匹配规则 let ...

随机推荐

  1. kettle从入门到精通 第五十二课 ETL之kettle Avro output

    1.上一节课我们学习了avro input,本节课我们一起学习下avro out步骤. 本节课通过json input 加载json文件,通过avro out 生成avro二进制文件,写日志步骤打印日 ...

  2. 关于 Elasticsearch 不同分片设置的压测报告

    摘要 为了验证当前集群经常出现索引超时以及请求拒绝的问题,现模拟线上集群环境及索引设置,通过压测工具随机生成测试数据,针对当前的 850 个分片的索引,以及减半之后的索引,以及更小分片索引的写入进行压 ...

  3. C#.NET BC BouncyCastle 国密 SM2 解密遇到 Invalid point encoding 77

    C#.NET BC BouncyCastle 国密 SM2 解密遇到 Invalid point encoding 77 参考:https://blog.csdn.net/seeyouagen/art ...

  4. 3个月搞定计算机二级C语言!高效刷题系列进行中

    前言 大家好,我是梁国庆. 计算机二级应该是每一位大学生的必修课,相信很多同学的大学flag中都会有它的身影. 我在大学里也不止一次的想要考计算机二级office,但由于种种原因,备考了几次都不了了之 ...

  5. 高级前端开发需要知道的 25 个 JavaScript 单行代码

    1. 不使用临时变量来交换变量的值 例如我们想要将 a 于 b 的值交换 let a = 1, b = 2; // 交换值 [a, b] = [b, a]; // 结果: a = 2, b = 1 这 ...

  6. 浅析Vite本地构建原理

    前言 随着Vue3的逐渐普及以及Vite的逐渐成熟,我们有必要来了解一下关于vite的本地构建原理. 对于webpack打包的核心流程是通过分析JS文件中引用关系,通过递归得到整个项目的依赖关系,并且 ...

  7. 颠覆传统编程,用ChatGPT十倍提升生产力

    我们即将见证一个新的时代!这是最好的时代,也是最坏的时代! 需求背景 背景: 平时会编写博客,并且会把这个博客上传到github上,然后自己买一个域名挂到github上. 我平时编写的博客会有一些图片 ...

  8. 基于LoRA的RLHF

    参考Github 开源模型LLM-Tuning 一.简介 (1)RLHF (基于人类反馈的强化学习) 分为三步: SFT (Supervised Fine-Tuning): 有监督的微调,使用正常的 ...

  9. ubuntu 18.04 设置开机自启

    ubuntu 18.04 设置开机自启 背景 为了添加一些自定义的服务,例如autossh. 原文(有删改):https://zhuanlan.zhihu.com/p/98804785 介绍 ubun ...

  10. 【论文阅读】RAL2020: UFOMap An Efficient Probabilistic 3D Mapping Framework That Embraces the Unknown

    Last edited time: March 31, 2023 1:30 PM Reference and prenotes Paper link:https://ieeexplore.ieee.o ...