zoukankan      html  css  js  c++  java
  • 【Vue】13 VueRouter Part3 路由守卫

    单页应用中,只存在一个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请求

    如此往复:

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

    不好维护,写的难看。

    未写完,暂停 

  • 相关阅读:
    win10下Anaconda3在虚拟环境python_version=3.5.3 中配置pyspark
    在Pycharm上编写WordCount程序
    ASP.NET Core读取AppSettings
    如何高逼格读取Web.config中的AppSettings
    C# 防止同时调用=========使用读写锁三行代码简单解决多线程并发的问题
    C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
    Sql Server 里的向上取整、向下取整、四舍五入取整的实例!
    ECMAscript5 新增数组内函数
    js 严格模式
    js中数组去重
  • 原文地址:https://www.cnblogs.com/mindzone/p/13382061.html
Copyright © 2011-2022 走看看