首页 > 其他分享 >vue-router 路由模式有几种?

vue-router 路由模式有几种?

时间:2023-09-07 20:33:18浏览次数:53  
标签:vue 浏览器 URL 模式 服务器 router 路由 History

Vue Router 提供了三种路由模式:

######1:Hash 模式(默认): 在 URL 中使用带有 # 符号的哈希值来管理路由。例如:http://xxxx.com/#/path。 在 Hash 模式下,当 URL 的哈希值发生变化时,浏览器不会向服务器发送请求,而是通过监听 hashchange 事件来进行路由导航。

######2:History 模式: 使用 HTML5 的 History API 来管理路由。这种模式下,URL 不再需要使用哈希值,而是直接使用正常的 URL 地址。例如:http://xxxx.com/path。 在 History 模式下,当 URL 发生变化时,浏览器会向服务器发送请求,服务器需要配置相应的路由规则,以确保在刷新页面或直接访问 URL 时能正确响应路由。

######3:Abstract 模式: 这种模式主要用于非浏览器环境,比如在服务器端渲染(Server-Side Rendering)时使用。 在 Abstract 模式下,Vue Router 不会对 URL 进行任何处理,而是将路由信息保存在内存中,通过编程方式进行路由导航。

可以通过创建 Vue Router 实例时的 mode 配置项来选择使用哪种路由模式。例如:

const router = new VueRouter({
  mode: 'history', // 使用 History 模式
  routes: [...]
})

在使用 History 模式时,需要服务器配置来支持路由的正常工作。具体配置方法可以参考 Vue Router 官方文档或相关的服务器配置指南。

#####Vue Router 的路由模式有什么区别?

Vue Router 的不同路由模式(Hash 模式、History 模式和 Abstract 模式)之间有以下区别:

######1:URL 格式:

  • Hash 模式:URL 中带有 # 符号和哈希值,例如 http://xxxx.com/#/path。
  • History 模式:URL 没有 # 符号,直接使用正常的 URL 地址,例如 http://xxxx.com/path。
  • Abstract 模式:不进行 URL 处理,路由信息保存在内存中,适用于非浏览器环境。

######2:浏览器行为:

  • Hash 模式:URL 的哈希值发生变化时,浏览器会触发 hashchange 事件,Vue Router 监听该事件来进行路由导航,不会向服务器发送请求。
  • History 模式:URL 发生变化时,浏览器会向服务器发送请求,服务器需要配置相应的路由规则来正确响应路由。
  • Abstract 模式:不涉及浏览器行为,路由信息保存在内存中,适用于非浏览器环境。

######3:刷新页面:

  • Hash 模式:刷新页面时,URL 中的哈希值不会被发送到服务器,仍然停留在前端,因此前端能够通过哈希值来恢复应用的状态。
  • History 模式:刷新页面时,URL 将被发送到服务器,服务器需要配置相应的路由规则来正确响应路由,否则会导致 404 错误。
  • Abstract 模式:不涉及浏览器行为,无论如何刷新页面都不会发送请求到服务器。

######4:服务器配置:

  • Hash 模式:不需要特殊的服务器配置,因为哈希值不会发送到服务器。
  • History 模式:需要服务器配置来支持路由的正常工作,主要是为了在刷新页面或直接访问 URL 时能正确响应路由。
  • Abstract 模式:不涉及服务器配置,适用于非浏览器环境。

选择使用哪种路由模式取决于项目的需求和环境。 Hash 模式简单易用,不需要服务器配置,但 URL 带有哈希值; History 模式去除了哈希值,更符合传统 URL 的形式,但需要服务器配置支持; Abstract 模式适用于非浏览器环境,不涉及浏览器行为。

标签:vue,浏览器,URL,模式,服务器,router,路由,History
From: https://blog.51cto.com/u_15315508/7401057

相关文章

  • Vue简单浮动标签(simple floating labels)
    简介及使用教程Vue简单浮动标签(simplefloatinglabels)是一个基于Vue.js的简单浮动表单标签组件,支持自定义颜色、边框及错误信息。安装npmivue-simple-floating-labels使用引入组件importFloatingLabelfrom'vue-simple-floating-labels'exportdefault{......
  • Vue 拖拽组件(Draggable)
    简介及使用教程Vue拖拽组件(Draggable)是一个允许与View-Model同步进行拖放排序的Vue组件。这是基于Sortable.js并提供它的所有功能。特点完全支持Sortable.js特性:支持触摸设备支持拖动句柄和可选择的文本智能自动滚动支持在不同列表之间拖放,没有jQuery依赖项保持......
  • 滚动到底部的Vue指令插件
    简介及使用教程VueChatScroll是一个保持可滚动内容滚动到底部的Vue指令插件,用于Vue.js2,当在该元素中添加新内容时,滚动到该元素的底部。安装npmivue-chat-scroll使用importVuefrom'vue'importVueChatScrollfrom'vue-chat-scroll'Vue.use(VueChatScroll)......
  • Vue3实战06-CompositionAPI+<script setup>好在哪?
    Vue3的CompositionAPI+<scriptsetup>这种最新的代码组织方式。<scriptsetup>是啥?为啥尤大在微博强推?本文就使用CompositionAPI和<scriptsetup>重构第2讲的清单应用。重构过程将明白,CompositionAPI让我们更好组织代码结构,<scriptsetup>本质是更精简方式写Compositi......
  • vite + vue3 自动导入点击路由刷新问题记录
     exportdefaultdefineConfig(()=>{//这里只加入了element的有其他的也加在这里constoptimizeDepsElementPlusIncludes=['element-plus/es'];//预加载element样式有其他组件也是如此设置即可fs.readdirSync('node_modules/element-plus/es/components').......
  • Vue3实战06-CompositionAPI+<script setup>好在哪?
    Vue3的CompositionAPI+<scriptsetup>标签内定义的变量和函数,都可以在模板中直接使用。###1.2显示清单应用实现累加器后,回到src/pages/Home.vue组件,使用如下代码显示清单应用。直接importTodoList.vue组件,然后<scriptsetup>会自动把组件注册到当前组件,这样......
  • 2-Vue.js环境准备-使用vue-cli快速搭建项目(cli2)
    一、概述在用Vue.js构建大型应用时,推荐使用npm安装,npm能很好的和webpack等打包工具配合使用。如果使用npm过程中安装速度过慢,可以考虑使用淘宝镜像的cnpm来代替npm。首先Vue的安装依赖于Node.js,要保证你的计算机上已经安装过Node.js。可以参考前面的文章:https://blog.csdn.net/G......
  • vue中的nextTick的作用
    vue里面,常用的事件onMounted里,总喜欢用一个nextTick:onMounted(()=>{nextTick(()=>{init();});});这个东西有啥用呢?我总搞不懂。今天我忽然有点明白了。这是一个跟前面语句有关的方法。意思是,等前面的都执行完了,再执行nextTick里面的方法。比如说,页面上有一块内容,正......
  • GIN 路由分析
    GIN路由分析第一步:gin.Default  这个会返回一个Engine,Engine的结构如下 其中RouterGroup也是与路由有关的结构体,它的结构体如下第二步:r.GET()r.get就是路由注册和路由处理。r.GET里面的方法就是group.handle就是咱由处理,handle的处理函数  里面的addRoute这......
  • Vue2 中每个组件实例都对应一个 watcher 实例? .
    Vue2中每个组件实例对应一个渲染Watcher实例,用于监听组件的响应式数据变化并更新视图。除了渲染Watcher,还可以通过watch属性来创建额外的Watcher实例,用于监听特定的数据变化。在Vue2中,每个组件实例都有一个$watch方法,可以用于创建Watcher实例。......