1 Star 0 Fork 0

fuguiyong/vite-vue3-admin

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

vue3-admin-init-demo (Vite版本)

vue3中后台前端简单模板(Vite版本)

环境要求

  1. node版本>=14.18.0

开发规范

  1. 使用全局变量或定时器务必及时清除,避免内存泄漏
  2. 变量命名规范:无特殊情况均采用驼峰命名
  3. 涉及表单最好提为单独组件(原因:a.双向绑定会触发该页面的重新渲染;b.Vue更新粒度为组件级别)
  4. 注意函数,模块间的解耦,减少代码耦合,提高代码可移植性
  5. 每个页面目录规范见src/views/example示例

安装

npm install

运行

npm run dev

打包

npm run build

主要dependencies说明

  1. @emmafgy/efui:个人开发的vue3一些常用组件,点我查看文档
  2. @emmafgy/util:个人收集的常用工具函数,点我查看文档
  3. element-plus:饿了吗,vue3组件库,点我查看文档

src目录结构

├─api 			 # 接口
├─assets 		 # 资源
├─components	 # 组件
├─config 		 # 配置
├─directives 	 # 自定义指令
├─layouts 		 # 布局
├─lib 			 # UI库按需引入入口
├─model 		 # 模型
├─router 		 # 路由
├─store 		 # vuex
├─style 		 # 样式
├─utils  		 # 工具
└─views 		 # 视图

重要目录说明

  1. src/lib: @emmafgy/efui 和 element-plus 两个主要依赖的入口,分别实现了按需引入和自定义主题
  2. src/init.js: 为了保证src/main.js程序入口的整洁,应用初始化逻辑在这里
  3. src/utils/index.js: 工具函数的入口,已经导入了@emmafgy/util依赖的所有工具函数,自定义工具函数直接加即可

重要功能说明

1. src/layouts/Home.vue的keep-alive组件缓存配置

demo的首页布局src/layouts/Home.vue使用keep-alive组件的include属性,配合vuex,vue-router实现了Home.vue子路由页面的动态缓存,具体配置说明如下:

1. 配置Home.vue子路由页面开启缓存,配置完毕进入该页面就会缓存该组件,销毁时机见步骤2
// src/router/home.js 新增子路由并设置meta.keepAlive = [{mutationName:"",componentName""}]即可实现缓存
// 以下是src/views/test/page2.vue缓存配置示例,具体文件:src/router/home.js
// src/views/test/page2.vue 页面的路由缓存配置
{
	path: 'page2',
	name: 'page2',
	component: () => import('../views/test/page2.vue'),
	meta: {
		title: "page2",
		keepAlive: [{
			mutationName: "addkeepAliveComponentsHome", // mutationName对应vuex的mutation,src/views/Home.vue 的 mutation已经配置好了,不需要改变
			componentName: "page2", // componentName对应需要缓存组件的name属性,不是路由配置的name属性
		}], // beforeEach钩子使用,对应kepp-alive组件的include属性
	}
}
2. 销毁缓存组件
	// 在缓存组件的BeforeRouteLeave设置取消缓存即可
	const store = useStore();
	onBeforeRouteLeave((to, from, next) => {
		const keepAliveFullPath = ["/home/page1"];
		if (!keepAliveFullPath.includes(to.fullPath)) {
			store.commit("removekeepAliveComponentsHome", "page2"); // 第二个参数 务必等于 该组件name
		}
		next();
	});

其他说明:

如果想缓存的页面使用了router-view组件,并且设置了路由的redirect属性直接重定向到了子页面,
那么本来想缓存的页面就不会走router.beforeEach钩子函数了,因为直接被重定向到子页面了,
所以想要实现该页面的缓存就需要的配置子页面的meta.keepAlive里面新增该页面的缓存配置

其他说明

1. 侧边栏

侧边栏是由src/config/sidebar.js导出的sidebarMenuList对象配合ef-menu组件生成的

空文件

简介

vite版本vue3中后台简单模板 展开 收起
HTML 等 5 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/fuguiyong/vite-vue3-admin.git
git@gitee.com:fuguiyong/vite-vue3-admin.git
fuguiyong
vite-vue3-admin
vite-vue3-admin
master

搜索帮助

371d5123 14472233 46e8bd33 14472233