我变成了曾经最讨厌的模样:路由屎山有感,Next 你是风暴也是风暴眼

0. 缘起

项目中有个跨端登录的需求,上次应该说到过用window.name来传信息,这次我们用query,就涉及到关于字符串的处理。然后!因为这项目还有动态路由,就导致全局路由守卫方法非常的臃肿繁复。我受不了了!

1. 来点小菜——字符串处理

1.1 分割 split

split可以用__正则__,(正则,我的卡密!)

    let path = window.location.href;
    let arr = path.split(/\?/);

1.2 替换replace

replace同样可以用__正则__

写了个工具函数挺适合取query中的参数的

function getKeyWord(keyword, array) {
    let test = array.find((key) => {
        return key.includes(keyword);
    });
    return test !== undefined ? test.replace(keyword, "") : "";
}

使用方法就是,传入1个关键词和需要查找该关键词的array,然后find关键词所在,再用replace方法剔除多余字符串。

2. Next 你是风暴也是风暴眼

next() 和 next('xxx') 是不一样的,区别就是前者不会再次调用router.beforeEach(),后者会!

解决使用Vue-Router出现无限循环问题 (fly63.com)

这个beforeEach()无限调用原来是这个原因,我心痛泪流!

3. 不要写屎山!

路由各种跳转,各种转圈,我之前写的堪称一坨屎加在另一坨屎上面,看的都直犯恶心。今天又看到一个知乎回答,才让我下定决心,铲走屎山!

现在整个 Web 前端是「屎山」吗? - Piszz的回答 - 知乎 https://www.zhihu.com/question/511853234/answer/2318228892

PS: router跳转排查的时候用Message.info('...')的方法比console.log更直观!

posted @ 2022-01-21 17:02  乐盘游  阅读(48)  评论(0编辑  收藏  举报