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 相关文章推荐
js实现连续英文字符自动换行兼容ie6 ie7和firefox
Sep 06 Javascript
jquery和css3实现的炫酷时尚的菜单导航
Sep 01 Javascript
jquery插件uploadify实现带进度条的文件批量上传
Dec 13 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
Bootstrap Chart组件使用教程
Apr 28 Javascript
ajax与json 获取数据并在前台使用简单实例
Jan 19 Javascript
JavaScript中transform实现数字翻页效果
Mar 08 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
ajax请求data遇到的问题分析
Jan 18 Javascript
js实现轮播图的完整代码
Oct 26 Javascript
详解Vue、element-ui、axios实现省市区三级联动
May 07 Javascript
JavaScript数组排序的六种常见算法总结
Aug 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
ASP知识讲座四
2006/10/09 PHP
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
php读取der格式证书乱码解决方法
2015/06/22 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
深入理解JS正则表达式---分组
2016/07/18 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
JavaScript实现三级级联特效
2017/11/05 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
Node.js + express基本用法教程
2019/03/14 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
django 外键创建注意事项说明
2020/05/20 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
煤矿班组长岗位职责
2013/12/29 职场文书
springboot如何初始化执行sql语句
2021/06/22 Java/Android
html5调用摄像头截图功能
2022/01/18 Javascript
Mysql事务索引知识汇总
2022/03/17 MySQL