首页 > 其他分享 >VUE模块化开发思路

VUE模块化开发思路

时间:2024-11-07 17:33:03浏览次数:6  
标签:adminCommon VUE 项目 模块化 使用 模块 公共 import 思路

构建工具:
vite
需求:
在多个项目下,低层框架可复用 ,样式可复用,模块可复用。

一、 项目示例
例如当前有两个项目:
aaAdmin项目a
twtighten 项目b
项目a和项目b中都有共同的低层逻辑,比如登录,权限验证,前端框架样式等等。
在这个两个项目中我们独立出一个公用项目adminCommon,a和b都引用这个项目。这样就便于管理
二、 项目实现
独立出的项目adminCommon,放在其他项目同级然后在项目a b中分别安装adminCommon作为模块
npm install ../adminCommon adminCommon 为项目文件夹
这个模块的包名称在adminCommon项目中的package.json里面设置如下:

{
  "type":"module",
  "name": "tianwu-ui-framework",//模块包名称,后面将通过模块名称引用
  "version": "3.0.0",
  "description": "系统管理模块",
  "author": "[email protected]",//作者
   ......

最后直接在项目a b中,直接导入就可以使用 adminCommon 中的组件了

import Slide from 'tianwu-ui-framework/src/components/Slide'

其他 项目a、项目b,为了不改动路由,可以在页面里面套通用模块组件的方式来解决
例如:

<!--menu.vue 菜单加载页--> 
<template>
  <div>
   <menu-list></menu-list>
  </div>
</template>

<script setup name="menu">
import menuList from "tianwu-ui-framework/src/views/system/menu/index";
</script>

三、 其他遇到的问题
问题一、资源路径问题:
本人目前用的vite构建项目,进行了别名配置”@“如下:

 '@': path.resolve(__dirname, './src')

使用 import “@//" 只对当前运行项目有效,如果公共模块要导入自身的模块 需要使用 相对路径"../",如果使用”@“将会使用当前运行项目的路径,由此也可以巧妙的通过公共模块在不同的项目加载不同的数据,
例如,在公共模块导入系统基础设置可以使用”@“来导入:

index.vue
//在公共模块,加载系统的个性化设置,运行公共模块里面的逻辑
import navbarSettings from '@/settings' 
//在公共模块加载自身的模块
import { Navbar } from './components'

上述是渲染导航条需要引用的模块,在公共模块中引用当前接入项目的配置,再在公共模块的导航条进行渲染
问题二、如果在公共模块加载的路由,必须通过 引用公共模块的路由来使用,不能直接用 useRouter() 获取
例如:

import router from 'tianwu-ui-framework/src/router'  //可以正常使用(建议使用)
const router = useRouter();//打包后子模块中无法使用,父模块中可以使用(不建议使用)

问题三、开发环境下,外部资源权限问题,(当前项目调用公共项目的资源往往会有权限的问题),使用vite添加如下配置:

server: {
      fs: {
        // Allow serving files from one level up to the project root
        strict: false,
      },
      ...
}

四、 其他
对于模块的版本管理,可以像后端模块化一样,搭建一个私有的package库来管理项目打包后的版本,将模块项目根据版本打包上传到私有库。其他项目直接安装私有库的包
对于模块化框架,很多时候需要搭配后端使用,比如微服务架构等等,将每个微服务模块对应一个前端模块,这样就实现了整个前后端分离项目的模块化,所有模块按需加载,减少重复造轮子。

标签:adminCommon,VUE,项目,模块化,使用,模块,公共,import,思路
From: https://www.cnblogs.com/daxiongblog/p/18533110

相关文章

  • nginx 部署2个相同的vue
    起因:最近遇到一个问题,在前端用nginx部署vue,发现如果前端有改动,如果不适用热更新,而是直接复制项目过去,会404因此想到用nginx负载两套相同vue项目,然后一个个复制vue项目就可以了。 废话不多:一在nginx下创建两个vue的路径 二修改nginx的配置文件worker_processes......
  • Vue3 - 详细实现虚拟列表前端虚拟滚动列表解决方案,vue3长列表优化之虚拟列表,解决列表
    前言Vue2版本,请访问这篇文章在vue3项目开发中,详解实现虚拟列表高度不固定(不定高)且复杂含有图片视频等复杂虚拟列表教程,决列表每项高度不确定及img图像或视频的加载方案,利用缓冲区技术解决用户浏览时渲染不及时列表闪烁白屏/列表加载闪屏,解vue3实现虚拟列表优化大......
  • vue—ref属性
    原文链接:vue—ref属性–每天进步一点点 在vue中ref属性基本有两个作用,一个是获取dom元素,另一个是获取组件实例化对象。初始页面和初始代码如下:123456789101112131415161718192021222324252627282930313233343536<template>......
  • vue-props配置
    原文链接:vue-props配置–每天进步一点点1.props作用props主要用于组件实例对象之间传递参数,比如我们前面创建的student组件,我们在组件中让他显示一些信息,比如下面这样:Student组件如下:1234567891011121314151617181920<template>  <div> ......
  • gantt-elastic(vue甘特图)
    安装gantt-elastic与gantt-elastic-headernpminstall--savegantt-elasticnpminstall--savegantt-elastic-header//项目里面没有安装dayjs的话还需要安装一下,因为他官网的例子用到了npminstalldayjs--save//项目里面安了less-loader可能会报错//less-loader版......
  • 基于SpringBoot+Vue的网上超市设计与实现
    前言网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此超市商品销售信息的管理计算机化,系统化是必要的。设计开发网上超......
  • 基于springboot+vue的毕业生实习与就业管理系统的设计与实现
    前言使用旧方法对毕业生实习与就业管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在毕业生实习与就业管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的毕业生实习与就业管理......
  • ssm066农家乐信息平台的设计与实现+vue(论文+源码)_kaic
    毕业设计(论文)题目:农家乐信息平台的设计与实现      摘 要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对农家乐信息管理混乱,出错率高,信息安......
  • 前端Vue自定义个性化三级联动自定义简洁中国省市区picker选择器
    一、 前端组件概述前端组件开发在现代前端开发中占据着至关重要的地位。随着互联网的快速发展,前端应用的规模和复杂性不断增加,传统的开发方式已经难以满足需求。前端组件开发应运而生,成为提高开发效率、代码可维护性和可复用性的关键手段。二、 组件化的重要性通过将复......
  • 基于SpringBoot + Vue的在线考试系统(角色:学生、教师、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......