(1)两种模式最大的区别就是链接里有没带#,hash模式会带上#
(2)在生产环境中,history 模式有一个比较大的问题,就是当手动刷新时,会报404错误
刷新页面路径访问404时会重定向到index.html,配置url重写语句,注意是重写,不是重定向。
import Login from '../views/Login
这种方式导入组件,当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。打包后,这些组件都会被打包到一个以app开头的文件中。
const Login = () => import('../views/Login')
...
{
path: '/login',
name: 'login',
component: Login // 此时的 login 是函数
},
对比原来的引入方式,就能发现不同点:现在的 Login 是个函数,当路由规则匹配上,就会执行这个函数,才去加载此组件。将所有组件的引入方式都像上面这样修改后,重新打包,由原来的一个js文件拆分成了体积较小的多个js文件。
...
component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
这种引入方式是将每个组件都分别打包了,可以将多个组件打包到一个包中。打包后,这些组件都会被打包到一个以about开头的文件中。