vue多页面项目中路由使用history模式的方法


Posted in Javascript onSeptember 23, 2019

前言

之前写了一个vue项目中需要添加一个打印的页面,需要使用多页面的模式进行开发,vue-cli3出初始化的项目配置多页面还是很容易的,但是发现print.html没有办法配置history模式的路由,一旦使用history模式的路由。写了一个简单的demo在网上寻求帮助没有能解决问题,后来没有办法只能使用hash模式完整项目了。

如何解决

有一天看webpack文档的时候,突然看到了historyApiFallback配置项,一瞬间感觉找到方法了。下班后回家就下载下之前的项目折腾了。

之前的vue.config.js中的配置是这样的,

const path = require('path')
function resolve (dir) {
 return path.join(__dirname, dir)
}
module.exports = {
  pages: {
    index: {
      entry: 'src/main.js',
      template: 'public/index.html',
      filename: 'index.html',
      title: 'Index Page',
    },
    print: {
      entry: 'src/print/main.js',
      template: 'public/print.html',
      filename: 'print.html',
      title: 'print Page',
    }
  },
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('assets',resolve('src/assets'))
      .set('components',resolve('src/components'));
  }
}

然后根据 webpack文档 ,添加了如下代码:

configureWebpack: {
    devServer: {
      historyApiFallback: {
        verbose: true,
        rewrites: [
          { from: /^\/index\/.*$/, to: '/index.html'},
          {from: /^\/print\/.*$/, to: '/print.html'}
        ]
      }
    }
  }

接下来启动项目去浏览器中验证,发现访问 localhost:8080/print/hello 和 localhost:8080/index/hello-world 能够分别访问到 print.html 和 index.html 页面。但是不能进入对应的路由于是修改各自的路由文件,修改完后的路由分别为:

// print
import HelloWold from '../components/HelloWorld'
import goBack from '../components/GoBack'
export default [
  
  {
    path: '/print/hello',
    name: 'print',
    component: HelloWold
  },
  {
    path: '/print/go-back',
    name: 'print',
    component: goBack
  }
]
// index
import HelloWold from '../components/HelloWorld.vue'
export default [
  {
    path: '/index/hello-world',
    name: 'hello-world',
    component: HelloWold
  }
]

在浏览器中访问,可以了~~~

项目地址 github

总结

以上所述是小编给大家介绍的vue多页面项目中路由使用history模式的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Notify - 基于jquery的消息通知插件
Oct 18 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
May 29 Javascript
javascript中 try catch用法
Aug 16 Javascript
如何屏蔽防止别的网站嵌入框架代码
Aug 24 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
Nov 18 Javascript
全面解析Angular中$Apply()及$Digest()的区别
Aug 04 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
Mar 27 jQuery
解决vue router组件状态刷新消失的问题
Aug 01 Javascript
在JS循环中使用async/await的方法
Oct 12 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 Javascript
React倒计时功能实现代码——解耦通用
Sep 18 Javascript
JS随机密码生成算法
Sep 23 #Javascript
详解mpvue开发微信小程序基础知识
Sep 23 #Javascript
layui动态渲染生成左侧3级菜单的方法(根据后台返回数据)
Sep 23 #Javascript
layui树形菜单动态遍历的例子
Sep 23 #Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
Sep 23 #Javascript
优雅的使用javascript递归画一棵结构树示例代码
Sep 22 #Javascript
Webpack按需加载打包chunk命名的方法
Sep 22 #Javascript
You might like
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
PHP图像处理类库及演示分享
2015/05/17 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
javascript实现简易计算器的代码
2016/05/31 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
jQuery插件zTree实现删除树节点的方法示例
2017/03/08 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
微信小程序实现留言功能
2018/10/31 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
vue实现购物车的监听
2020/04/20 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
[01:37]PWL S2开团时刻DAY1&2——这符有毒
2020/11/20 DOTA
python3编写C/S网络程序实例教程
2014/08/25 Python
python服务器端收发请求的实现代码
2014/09/29 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
python3.x 生成3维随机数组实例
2019/11/28 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
python Pexpect模块的使用
2020/12/25 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
爱尔兰电脑、家电和家具购物网站:Buy It Direct
2019/07/09 全球购物
电工工作职责范本
2014/02/22 职场文书
小学生春游活动方案
2014/08/20 职场文书
上下班时间调整通知
2015/04/23 职场文书
强烈推荐:小学生:暑假作息时间表(值得收藏)
2019/07/09 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL