Blogger Information
Blog 87
fans 1
comment 0
visits 59139
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
vue路由
阿杰
Original
324 people have browsed it

1、两种模式 hash、history

(1)两种模式最大的区别就是链接里有没带#,hash模式会带上#
(2)在生产环境中,history 模式有一个比较大的问题,就是当手动刷新时,会报404错误

  • hash 模式下下,只将 hash 前面的部分当作地址,所以会向服务端重新请求,刷新之后,与刷新之前的页面内容是一致的(因为 hash 值没有变化)
  • istory 模式下,会将地址栏中的地址全部看作请求地址,所以刷新后,会向服务端请求这个地址,而我们的前端项目下,只有一个 index.html 和一些 js、css、图片等文件,根本没有请求的资源,所以服务器就返回 404了
  • 解决方法:apche服务器重写路由到 www.xx.com/ 下。然后刷新可正常访问到 手动刷新的 页面


刷新页面路径访问404时会重定向到index.html,配置url重写语句,注意是重写,不是重定向。

2、懒加载

  1. import Login from '../views/Login

这种方式导入组件,当打包构建应用时,JavaScript 包会变得非常大,影响页面加载。打包后,这些组件都会被打包到一个以app开头的文件中。

  1. const Login = () => import('../views/Login')
  2. ...
  3. {
  4. path: '/login',
  5. name: 'login',
  6. component: Login // 此时的 login 是函数
  7. },

对比原来的引入方式,就能发现不同点:现在的 Login 是个函数,当路由规则匹配上,就会执行这个函数,才去加载此组件。将所有组件的引入方式都像上面这样修改后,重新打包,由原来的一个js文件拆分成了体积较小的多个js文件。

  1. ...
  2. component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')

这种引入方式是将每个组件都分别打包了,可以将多个组件打包到一个包中。打包后,这些组件都会被打包到一个以about开头的文件中。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post