vue 模块化开发

vue 框架搭建
vue 框架搭建

安装所需依赖

npm install --save view-design
npm install --save sass-loader
npm install --save-dev cross-env

新建 conAll projectA projectB projectC
根据一下目录新建文件
在这里插入图片描述
package.json
在这里插入图片描述

"dev": "cross-env PROJECT_NAME=conAll vue-cli-service serve",
		"dev:projectA": "cross-env PROJECT_NAME=projectA vue-cli-service serve",
		"dev:projectB": "cross-env PROJECT_NAME=projectB vue-cli-service serve",
		"dev:projectC": "cross-env PROJECT_NAME=projectC vue-cli-service serve",
		"build": "cross-env PROJECT_NAME=conAll vue-cli-service build",
		"build:projectA": "cross-env PROJECT_NAME=projectA vue-cli-service build",
		"build:projectB": "cross-env PROJECT_NAME=projectB vue-cli-service build",
		"build:projectC": "cross-env PROJECT_NAME=projectC vue-cli-service build",
		"lint": "vue-cli-service lint"

projectA projectB projectC 代码相同
参考
vue 框架搭建
注意main.js中的路径错误

conAll>view>index/index.vue

<template>
	<div class="ln-margin">
		<div class="ln-flex">
			<div v-for="(item,index) in systemList" :key="index" :class="activeIndex==index ?'active':''" @click="menuClick(item,index)">
				{{ item.title }}
			</div>
		</div>
		<iframe :src="systemUrl" width="100%" height="100%" frameborder="0" class="iframe" id="bossIframe"></iframe>
	</div>
</template>
<script>
	export default {
		data() {
			return {
				activeIndex: "0",
				systemUrl: "",
				systemList: [{
						title: "A项目",
						basepath: "http://localhost:8333/",
						systemId: "A"
					},
					{
						title: "B项目",
						basepath: "http://localhost:8334/",
						systemId: "B"
					},
					{
						title: "C项目",
						basepath: "http://localhost:8335/",
						systemId: "c"
					}
				],
				user: {}
			};
		},
		mounted() {
			this.systemUrl = this.systemList[0].basepath + "?systemId=" + this.systemList[0].systemId;
		},
		methods: {
			menuClick(item, index) {
				this.systemUrl = item.basepath + '?systemId=' + item.systemId;
				this.activeIndex = index
			}
		}
	};
</script>

<style scoped>
	.ln-margin {
		margin: 50px auto;
		width: 600px;
		border: 1px solid #00956A;
		height: 80vh;
	}

	.ln-flex {
		display: flex;
	}

	.ln-flex div {
		margin: 20px;
		padding: 10px;
	}

	.ln-flex div.active {
		border-bottom: 3px solid #0071F8;
	}
</style>

根目录下 新建config目录 index.js
config>index.js

var url = `http://120.24.252.226/api/`
// target: `http://127.0.0.1:8082`,
const config = {
	conAll: {
		pages: {
			index: {
				entry: "src/pages/conAll/main.js",
				template: "public/index.html",
				filename: "index.html"
			}
		},
		devServer: {
			port: 80, // 端口地址
			open: true, // 是否自动打开浏览器页面
			disableHostCheck: true,
			proxy: {
				"/api": {
					target: url,
					changeOrigin: true,
					pathRewrite: {
						'^/api': ''
					}
				}
			},
		}
	},
	projectA: {
		pages: {
			index: {
				entry: "src/pages/projectA/main.js",
				template: "public/index.html",
				filename: "index.html"
			}
		},
		devServer: {
			port: 8333, // 端口地址
			open: true, // 是否自动打开浏览器页面
			disableHostCheck: true,
			// 设置代理
			proxy: {
				"/api": {
					target: url,
					changeOrigin: true,
					pathRewrite: {
						'^/api': ''
					}
				}
			}
		}
	},
	projectB: {
		pages: {
			index: {
				entry: "src/pages/projectB/main.js",
				template: "public/index.html",
				filename: "index.html"
			}
		},
		devServer: {
			port: 8334, // 端口地址
			open: true, // 是否自动打开浏览器页面
			disableHostCheck: true,
			// 设置代理
			proxy: {
				"/api": {
					target: url,
					changeOrigin: true,
					pathRewrite: {
						'^/api': ''
					}
				}
			}
		}
	},
	projectC: {
		pages: {
			index: {
				entry: "src/pages/projectC/main.js",
				template: "public/index.html",
				filename: "index.html"
			}
		},
		devServer: {
			port: 8335, // 端口地址
			open: true, // 是否自动打开浏览器页面
			disableHostCheck: true,
			// 设置代理
			proxy: {
				"/api": {
					target: url,
					changeOrigin: true,
					pathRewrite: {
						'^/api': ''
					}
				}
			}
		}
	}
};
module.exports = config;

vue.config

const config = require("./config/index.js");
let projectName = process.env.PROJECT_NAME || "admin";

// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
// 这里只列一部分,具体配置参考文档
module.exports = {
	...config[projectName],
	// 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
	// 输出文件目录
	outputDir: "dist/" + projectName + "/",
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue中,模块开发是将一个大型应用程序拆分成小的、可重用的模块,然后将这些模块组合在一起构建整个应用程序。模块可以提高开发效率,使代码更易于理解和维护。例如,可以将一个功能拆分成多个组件,每个组件专注于实现独立的功能。这样,开发人员可以集中精力处理每个组件的逻辑,而不用同时关注整个应用程序的细节。 在Vue中,可以使用组件来创建模块。组件是一个功能代码集,可以方便地反复使用。通过使用组件,可以将页面拆分成多个小模块,每个小模块负责一个特定的功能。这样,我们可以更加灵活地组织代码,并且可以在不同的地方重复使用同一个功能代码集。 Vue开发模式是MVVM模式,其中VM(ViewModel)的任务是完全封装DOM操作,开发人员不需要再关心Model和View之间的互相影响。当Model发生改变时,View会自动更新;当用户修改View时,Model中的数据也会相应变。这样,开发人员可以将注意力集中在如何操作Model上,而不需要过多地关注DOM操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Vue实战中的模块开发](https://blog.csdn.net/qq_40792558/article/details/110380334)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [挑战百日学习计划(小程序开发)-第9天(Vue组件component)](https://download.csdn.net/download/weixin_38691739/14043796)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Vue模块开发](https://blog.csdn.net/qq_43460335/article/details/123964102)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

希望……

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值