当前位置: 首页 > news >正文

vue实现多页面的一些问题解决

最近有做一个项目,然后需要实现多页面的,一个员工界面一个用户界面,因为配置的时候遇到了挺多问题,所以记录加深自己的印象
首先,配置多页面肯定需要vue.config.js,这个文件放在根目录

然后vue.config.js的配置如下:

module.exports = {
	publicPath: './',
	outputDir: 'dist',
	assetsDir: 'static',
	productionSourceMap: false,
	runtimeCompiler: true,//运行时是否启动模板编译
	pages: {
		index: {
			// page 的入口
			entry: "src/main.js",
			// 模板来源
			template: "public/index.html",
			// 在 dist/index.html 的输出
			filename: "index.html",
		},
		user: {
			entry: "src/views/User/User.js",
			template: "public/user.html",
			filename: "user.html"
		}
	},
	devServer: {
		proxy: {
			//反向代理的api地址
			'/api': {
				target: 'http://localhost:8181',
				//secure: true, //http带s开启
				changeOrigin: true,//允许跨域
				pathRewrite: {
					'^/api': '/'
				}
			},
		}
	},
}

这么一看还挺抽象的,再慢慢看下去,首先pages里面就是配置多页面的,index和user,我这里的话index就是员工界面,user是用户界面
然后看一下我的文件结构应该会清楚很多:

然后那个index里的entry就是文件入口,这个一般是你的main.js的路径,因为员工界面的引入内容我放在根目录的main.js里面,但是我的用户那个是放在一个单独文件夹里面配置引入的,所以他就用他自己的main.js就好了,我那里取名是User.js,所以文件名字一定要对应,然后是template的书写,这个肯定是放在public下的文件,要几个页面,就写几个html文件,然后对应的到就行了,filename这个就是你打包后的文件放在dist里面的文件名,就是这么简单就可以了

再看User的文件夹,他相当于是一个单独的小项目,所以他也得有main.js和App.vue,但是和外面的重名又不太好,所以就用这个的界面名称来命名问题也不大,这里的User.js和User.vue有一个特别需要注意的东西
User.vue

<template>
  <div id="user">
    <keep-alive>
      <router-view/>
    </keep-alive>
  </div>
</template>

<style>
</style>

User.js

import Vue from 'vue'
import User from './User.vue'
import router from './router'
import { Notify, Toast } from 'vant';

import 'vant/lib/index.css';
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use( Notify,Toast);

Vue.use(VueAxios, axios);
Vue.config.productionTip = false
axios.interceptors.response.use(
  response => {
    return response.data
  },
  error => {
    Toast({
      type: 'warning',
      message: '网络异常,请稍后重试'
    })
    return Promise.reject(error.response);
  }
)
new Vue({
  router,
  render: h => h(User),
}).$mount('#user')

User.js的$mount(''#user")的#user一定要与User.vue的id名称一样,然后render:h=>h(User)里的User一定要与引入的名称相同,就是import User from './User.vue'这个我刚写的时候找了好久的一个问题,真的是粗心害死人

然后这里面还有一个大坑
就是当运行的时候,会发现这样只能够访问到员工端,但是用户端不管输入什么都进不去,直到我将publicpath:'./'改成publicpath:'/',就只是把/前面的点去掉之后就可以正常的访问用户界面了,这个我一直没有找到具体的原因,希望有明白的大佬告诉一下我愿意,感激不尽

相关文章:

  • 原型链的理解(全面)
  • oracle check if the display variable is set
  • git项目创建过程
  • initramfs.img,ramdisk 文件解压与压缩
  • win7 Ubuntu双系统重装win7后Ubuntu引导消失
  • java Service warpper安装说明
  • 奇偶剪枝-优化(ZOJ 2110 , HDU 1010)
  • 全引用与部分引用
  • CodeForces 606C
  • 初探MongoDB:暴力美学
  • POJ 1006(中国剩余定理)
  • c++ algorithm中常用的几个内置函数
  • circularprogressbar/smoothprogressbar开源视图使用学习
  • C/C++和JAVA 实现大数相加
  • 苹果推出开源医学研究框架ResearchKit
  • 「面试题」如何实现一个圣杯布局?
  • C++类的相互关联
  • fetch 从初识到应用
  • JS字符串转数字方法总结
  • Laravel5.4 Queues队列学习
  • Node项目之评分系统(二)- 数据库设计
  • python 学习笔记 - Queue Pipes,进程间通讯
  • win10下安装mysql5.7
  • 订阅Forge Viewer所有的事件
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 排序算法之--选择排序
  • 什么软件可以剪辑音乐?
  • 数据仓库的几种建模方法
  • 自动记录MySQL慢查询快照脚本
  • 大数据全解:定义、价值及挑战
  • ​低代码平台的核心价值与优势
  • # Apache SeaTunnel 究竟是什么?
  • # 数论-逆元
  • ${factoryList }后面有空格不影响
  • (JS基础)String 类型
  • (八十八)VFL语言初步 - 实现布局
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • ./configure、make、make install 命令
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Core引入性能分析引导优化
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .NET学习全景图
  • /usr/lib/mysql/plugin权限_给数据库增加密码策略遇到的权限问题
  • @ConditionalOnProperty注解使用说明
  • [ vulhub漏洞复现篇 ] Celery <4.0 Redis未授权访问+Pickle反序列化利用
  • [04]Web前端进阶—JS伪数组
  • [100天算法】-实现 strStr()(day 52)
  • [CentOs7]iptables防火墙安装与设置
  • [GYCTF2020]Ez_Express
  • [Gym-102091E] How Many Groups
  • [HUBUCTF 2022 新生赛]
  • [i.MX]飞思卡尔IMX6处理器的GPIO-IOMUX_PAD说明
  • [IE6 only]关于Flash/Flex,返回数据产生流错误Error #2032的解决方式