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 相关文章推荐
JavaScript游戏之是男人就下100层代码打包
Nov 08 Javascript
jquery里的each使用方法详解
Dec 22 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 Javascript
js查找某元素中的所有图片地址的方法
Jan 16 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
Jan 05 Javascript
Angularjs使用指令做表单校验的方法
Mar 31 Javascript
Angular2中监听数据更新的方法
Aug 31 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
Sep 03 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
Sep 28 Javascript
代码解析React中setState同步和异步问题
Jun 03 Javascript
Vue h函数的使用详解
Feb 18 Vue.js
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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
PHP获取input输入框中的值去数据库比较显示出来
2016/11/16 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
设定php简写功能的方法
2019/11/28 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
在vue中使用echarts图表实例代码详解
2018/10/22 Javascript
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
国外平面设计第一市场:99designs
2016/10/25 全球购物
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
如何利用cmp命令比较文件
2016/04/11 面试题
仓库主管岗位职责
2014/03/02 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
2016中秋节广告语
2016/01/28 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
Python - 10行代码集2000张美女图
2021/05/23 Python
Python合并pdf文件的工具
2021/07/01 Python
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
详解redis在微服务领域的贡献
2021/10/16 Redis
MySQL中一条update语句是如何执行的
2022/03/16 MySQL
springcloud整合seata
2022/05/20 Java/Android