export default (imported as router) was not found_History API 与 vue-router路由中#的解析 - 一文g

URL(Universal Resource Locator)即统一资源定位符,又称网页地址,用于定位浏览器中所需显示的网页资源。

在 H5 之前,即使采用的是脚本语言的方式,只要浏览器地址栏中的 URL 地址被切换,都会触发一个页面刷新的过程,这个过程将耗费一些时间与资源。在很多时候,尤其是两个大部分内容相同的页面之间进行切换时,这个过程往往被视为一种浪费。

History API

H5 的 History API 允许在不刷新页面的前提下,通过脚本语言的方式来进行页面上某块局部内容的更新。

vue-router 默认 hash 模式 —— 使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

576a7c2113d115b244a7cdcd1da3b795.png

如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用  API 来完成 URL 跳转而无须重新加载页面。

/* jshint esversion: 6 */
import VueRouter from "vue-router";
import Vue from 'vue';
import Order from '@/components/Order';
import Home from '@/components/Home';
import My from '@/components/My';

(VueRouter);

const routes = [
    {
        path: '/',
        component:Home,
        name: 'home'
    },
    {
        path: '/order',
        component:Order,
        name: 'order'
    },
    {
        path: '/mine',
        component:My,
        name: 'mine'
    },
];

// 添加mode为history就不会有#
const router = new VueRouter({
    mode: 'history',
    routes
});

export default router;

当你使用 history 模式时,URL 就像正常的 url

04906f4c29b42e6e517177696e3cbfe0.png

不过这种模式要玩好,还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问  就会返回 404,这就不好看了。

所以呢,你要在服务端增加一个覆盖所有情况的候选资源:如果 URL 匹配不到任何静态资源,则应该返回同一个  页面,这个页面就是你 app 依赖的页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值