iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue-router如何实现history模式配置
  • 176
分享到

vue-router如何实现history模式配置

2024-04-02 19:04:59 176人浏览 安东尼
摘要

目录Vue-router history模式配置一:概述二、实现history模式需要怎样配置mode:“history“的作用vue-router hist

vue-router history模式配置

一:概述

vue-router可以设置两种模式:hash和history

const router = new VueRouter({ 
  mode: "hash", 
  // mode: "history", 
  routes 
});

如果使用hash模式,一般无需特殊配置;

但如果要使用history模式,则前端和服务端要做一定的设置;

使用history模式通常本地调试没有什么问题,但是一旦发布到测试或生产环境,则会出现页面白屏或者刷新页面白屏的现象,这种问题的出现是因为前端和服务端没有做相应的配置。

二、实现history模式需要怎样配置

2.1、前端配置

首先要设置路由的mode和base两个值,如下:

const routes = [...] 
const router = new VueRouter({
  mode: "history",
  base: process.env.BASE_URL,  // 如果使用history模式,必须设置base参数
  routes
});
 
export default router;

其次要设置vue.config.js里的publicPath,如下:

module.exports = {
  // publicPath默认值是'/',即你的应用是被部署在一个域名的根路径上
  // 设置为'./',可以避免打包后的静态页面空白
  // 当在非本地环境时,这里以项目test-daily为例,即打包后的h5项目部署服务器的test-daily目录下
  // 那么这里就要把publicPath设置为/test-daily/,表示所有的静态资源都在/test-daily/里
  // 打包部署后,会发现index.html引用的静态资源都添加了路径/test-daily/
  publicPath: process.env.node_ENV == 'development' ? './' : '/test-daily/',  
  ...... 
}

如下图所示:

至此,前端的配置工作就结束了。

2.2、服务端配置(这里以nginx为例)

官网其实有介绍,只是不太详细,这里直接上代码,如下:

location /test-daily表示项目部署在了 /test-daily目录下,这里要跟vue.config.js里的publicpath的值保持一致。

之所以刷新页面白屏,其实是因为路由资源不存在,以本项目为例(home为首页路由的参数):

https://test.xxx.yy/test-daily/home

当访问上述路由时,其实根本就不存在相应的资源,当然会404了,为了避免这种情况的发生,可以让所有的路由都指向index.html就可以解决问题了

Nginx上进行设置: try_files $uri $uri/ /test-daily/index.html        即可。

至此,也就实现了所有的history模式的配置。

mode:“history“的作用

在未设置mode:“history”,vue的路由默认是hash模式,地址栏中显示如下:

hash:在地址栏中显示"#"符号(这里的hash不是密码学中的散列运算)。例如:localhost:8080/#/index,hash的值为#/index。它的特点在于:hash虽然出现在路径中,但是不会被包括在Http请求中,对后端完全没有影响,因此改变hash不会重新加载页面。

history利用了H5 history Interface中新增的pushState()和replaceState()方法。(需要特定浏览器支持)这两个方法应用于浏览器的历史记录栈,在当前已有的back、forward、Go的基础上,它们提供了对历史记录进行修改的功能。只是当它们执行修改时,虽然改变了当前的Url,但是浏览器不会立即向后端发送请求。

综上:hash模式和history模式都属于浏览器自身的特性,Vue-Router只是利用了这两个特性(通过调用浏览器提供的接口)来实现前端路由。

为了使路径更加直观及美观,就需要使用history模式。只需在router文件夹下的index.js中加入 mode:“history”

关于单页面交互跳转,只需要使用router提供的方法即可。

在main.js文件配置中将router绑定到全局

Vue.prototype.router = router;

跳转页面如下:

<button @click="toArticle()">跳转文章页面</button>
methods:{
    toArticle() {
        this.$router.push('/article')
    }
  }

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: vue-router如何实现history模式配置

本文链接: https://www.lsjlt.com/news/152491.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue-router如何实现history模式配置
    目录vue-router history模式配置一:概述二、实现history模式需要怎样配置mode:“history“的作用vue-router hist...
    99+
    2024-04-02
  • vue-router怎么实现history模式配置
    本文小编为大家详细介绍“vue-router怎么实现history模式配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue-router怎么实现history模式配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-02
  • vue-router history模式服务器端如何配置
    这篇文章主要介绍了vue-router history模式服务器端如何配置的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue-router history模式服务器端如何配置文章都会有所收获,下面我们一起来看...
    99+
    2023-07-04
  • vue-router history模式服务器端配置过程记录
    history路由 history模式是指使用HTML5的historyAPI实现客户端路由的模式,它的典型表现就是去除了hash模式中url路径中的#。在使用Vue-Router...
    99+
    2024-04-02
  • vue-router history模式服务器端配置的示例分析
    小编给大家分享一下vue-router history模式服务器端配置的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!history路由history模式是指使用HTML5的historyAPI实现客户端路由的模式...
    99+
    2023-06-15
  • vue-router中hash模式与history模式的区别
    vue-router有两种模式 hash模式 history模式 1.单页面应用 单页应用 1.只有一个html文件,整个网站的所有内容都在这一个ht...
    99+
    2024-04-02
  • vuejs中router history如何配置到iis
    这篇文章主要为大家展示了“vuejs中router history如何配置到iis”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vuejs中router his...
    99+
    2024-04-02
  • Vue Router路由hash模式与history模式详细介绍
    目录一、前言二、hash模式三、history模式一、前言 对于hash模式和history模式,最直接的区别就是地址栏带不带"#"号了。 vue脚手架搭建的项目...
    99+
    2024-04-02
  • 如何解决vue router使用history模式刷新后404问题
    这篇文章将为大家详细讲解有关如何解决vue router使用history模式刷新后404问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因为我们的应用是单页客户端应用...
    99+
    2024-04-02
  • vue-cli如何打包使用history模式的后端配置
    这篇文章主要介绍vue-cli如何打包使用history模式的后端配置,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!apache的配置这是windows下的在httpd-vhosts...
    99+
    2024-04-02
  • HTML5中History模式如何实现
    这篇文章将为大家详细讲解有关HTML5中History模式如何实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、history.pushStatehistory.pu...
    99+
    2024-04-02
  • 服务器如何配置支持history模式
    88. 服务器如何配置支持history模式 服务器配置支持 history 模式是在使用前端路由时的常见需求,它使得在使用 history API 进行页面导航时,服务器能正确地返回对应的页面内容而...
    99+
    2023-10-05
    服务器 运维 history 前端 路由
  • Vue中Router路由两种模式hash与history详解
    hash 模式 (默认) 工作原理: 监听网页的hash值变化 —> onhashchange事件, 获取location.hash 使用 URL 的 hash 来模拟一个完整...
    99+
    2024-04-02
  • Vue中如何把hash模式改为history模式
    目录把hash模式改为history模式关于路由hash和history模式hash模式history 模式二者对比把hash模式改为history模式 如上图所示非常简单 只需要...
    99+
    2024-04-02
  • vue中vue-Router如何将默认hash模式修改为history需要做的修改
    这篇文章主要介绍了vue中vue-Router如何将默认hash模式修改为history需要做的修改,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解...
    99+
    2024-04-02
  • vue模式history下在iis中配置的示例分析
    小编给大家分享一下vue模式history下在iis中配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.npm r...
    99+
    2024-04-02
  • vue-router配合ElementUI如何实现导航
    这篇文章将为大家详细讲解有关vue-router配合ElementUI如何实现导航,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在每个项目中路由是不可或缺的,最近学习vu...
    99+
    2024-04-02
  • vue3 history模式配置及nginx服务器配置
    vue的路由方式有hash模式和history模式,history模式路由看起来有好些,路由路径里没有#号,而hash模式默认是有#号的。 vue3开始默认新建的项目都是history模式,不过history模式打包后想要使用正常访问的话,...
    99+
    2023-09-08
    服务器 nginx 运维
  • vue-cli history模式如何实现tomcat部署报404的解决方式
    小编给大家分享一下vue-cli history模式如何实现tomcat部署报404的解决方式,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!vue-cli开发过程中路由#不好看,去掉可使用...
    99+
    2024-04-02
  • 模块化react-router如何配置
    这篇文章主要介绍了模块化react-router如何配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。react-router模块化配置因为...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作