Vue单页应用改多页应用及跨页面组件间跳转

本文介绍了如何将Vue单页应用转换为多页应用,以适应不同页面布局需求,如将考试系统从左右布局变为上下结构。在实现过程中,详细讲解了修改webpack配置以支持多入口,并创建router文件进行路由管理。此外,还探讨了组件间跨页面跳转的解决方案,通过router.js中的beforeEach守卫函数判断并重定向,避免了死循环问题。
摘要由CSDN通过智能技术生成

1.我要做一个考试系统,大部分页面是左右布局,但“考试中”的页面我需要做成上下结构,因此,需要把单页应用改为多页应用,实现在不同页面框架下的布局。

2.同时,我从A.html下的组件“考试列表”跳转到B.html下的“考试中”组件,需要实现夸页面的组件间跳转。

先说第一个问题:

1.首先安装glob

2.修改build目录下的

  • utils.js 增加以下代码,大概是require了相关模块,定义了多入口入口函数entries()和多入口对应html加载函数
  • //+添加以下部分
    
    // glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 *等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件
    var glob = require('glob')
    // 页面模板
    var HtmlWebpackPlugin = require('html-webpack-plugin')
    // 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹
    var PAGE_PATH = path.resolve(__dirname, '../src/pages')
    // 用于做相应的merge处理
    var merge = require('webpack-merge')
    
    
    //多入口配置
    // 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在
    // 那么就作为入口处理
    exports.entries = function () {
        var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')
        var map = {}
        entryFiles.forEach((filePath) => {
            var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
            map[filename] = filePath
        })
        return map
    }
    
    //多页面输出配置
    // 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中
    exports.htmlPlugin = function () {
        let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')
        let arr = []
        entryHtml.forEach((filePath) => {
            let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))
            let conf = {
                // 模板
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值