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宝典学习笔记
Feb 07 Javascript
javascript innerHTML使用分析
Dec 03 Javascript
Textarea根据内容自适应高度
Oct 28 Javascript
利用javascript打开模态对话框(示例代码)
Jan 11 Javascript
javascript的函数作用域
Nov 12 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
node中Express 动态设置端口的方法
Aug 04 Javascript
angularjs实现猜数字大小功能
May 20 Javascript
jQuery轮播图实例详解
Aug 15 jQuery
webpack打包非模块化js的方法
Oct 24 Javascript
electron+vue实现div contenteditable截图功能
Jan 07 Javascript
js定时器出现第一次延迟的原因及解决方法
Jan 04 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
PHP生成sitemap.xml地图函数
2013/11/13 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
symfony2.4的twig中date用法分析
2016/03/18 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
Convert Seconds To Hours
2007/06/16 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
使用闭包对setTimeout进行简单封装避免出错
2013/07/10 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)
2016/02/16 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
js实现右键菜单功能
2016/11/28 Javascript
简单实现bootstrap选项卡效果
2017/02/08 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
详解webpack的配置文件entry与output
2017/08/21 Javascript
详解tween.js 中文使用指南
2018/01/05 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
python实现的简单猜数字游戏
2015/04/04 Python
python图片验证码生成代码
2016/07/02 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
深入理解Python变量的数据类型和存储
2021/02/01 Python
Bally美国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/18 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server