diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index b7c68129036..17df41e87f5 100644 --- a/CHANGELOG.zh_CN.md +++ b/CHANGELOG.zh_CN.md @@ -1,3 +1,14 @@ +# Wip + +### ⚡ Performance Improvements + +- 优化首屏体积大小 + +### 🐛 Bug Fixes + +- 修复一级菜单折叠显示菜单名问题 +- 修复预览命令不打包问题 + # 2.0.0-rc.3 (2020-10-19) ### ✨ Features diff --git a/src/components/Table/src/hooks/useProps.ts b/src/components/Table/src/hooks/useProps.ts index 109a100050f..404ecfba7c5 100644 --- a/src/components/Table/src/hooks/useProps.ts +++ b/src/components/Table/src/hooks/useProps.ts @@ -1,12 +1,3 @@ -/* - * @description: - * @author: wenbin.chen - * @Date: 2020-05-12 13:20:26 - * @LastEditors: vben - * @LastEditTime: 2020-10-07 14:52:34 - * @email: 190848757@qq.com - */ - import { Ref, ref, watch, unref } from 'vue'; import { BasicTableProps } from '../types/table'; diff --git a/src/components/Table/src/props.ts b/src/components/Table/src/props.ts index 87dfc831452..c8a7a819a05 100644 --- a/src/components/Table/src/props.ts +++ b/src/components/Table/src/props.ts @@ -133,7 +133,7 @@ export const basicProps = { }, bordered: { type: Boolean as PropType, - default: true, + default: false, }, pagination: { type: [Object, Boolean] as PropType, diff --git a/src/components/registerGlobComp.ts b/src/components/registerGlobComp.ts index 202c2e7e6bb..15c283174c6 100644 --- a/src/components/registerGlobComp.ts +++ b/src/components/registerGlobComp.ts @@ -1,11 +1,12 @@ import Icon from './Icon/index'; import { BasicHelp, BasicTitle } from './Basic'; import Button from './Button/index.vue'; -import { App } from 'vue'; +import { Button as AntButton } from 'ant-design-vue'; +import { getApp } from '/@/useApp'; -const compList = [Icon, BasicHelp, BasicTitle, Button]; -export function registerGlobComp(app: App) { +const compList = [Icon, BasicHelp, BasicTitle, Button, AntButton.Group]; +export function registerGlobComp() { compList.forEach((comp: any) => { - app.component(comp.name, comp); + getApp().component(comp.name, comp); }); } diff --git a/src/layouts/default/index.tsx b/src/layouts/default/index.tsx index 7702178ffe2..c3fc36adfbc 100644 --- a/src/layouts/default/index.tsx +++ b/src/layouts/default/index.tsx @@ -13,12 +13,17 @@ import { MenuModeEnum, MenuTypeEnum } from '/@/enums/menuEnum'; import { useFullContent } from '/@/hooks/web/useFullContent'; import LockPage from '/@/views/sys/lock/index.vue'; +import { registerGlobComp } from '/@/components/registerGlobComp'; import './index.less'; -// import { userStore } from '/@/store/modules/user'; export default defineComponent({ name: 'DefaultLayout', setup() { + // ! 在这里才注册全局组件 + // ! 可以减少首屏代码体积 + // default layout是在登录后才加载的。所以不会打包到首屏去 + registerGlobComp(); + // 获取项目配置 const { getFullContent } = useFullContent(); diff --git a/src/layouts/default/setting/index.vue b/src/layouts/default/setting/index.vue index 497d87a8304..962fc50686e 100644 --- a/src/layouts/default/setting/index.vue +++ b/src/layouts/default/setting/index.vue @@ -1,6 +1,6 @@ diff --git a/src/main.ts b/src/main.ts index cb9fe31e86b..723451d2aa9 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,9 +6,9 @@ import { setupAntd } from '/@/setup/ant-design-vue'; import { setupErrorHandle } from '/@/setup/error-handle/index'; import { setupDirectives } from '/@/setup/directives/index'; -import { registerGlobComp } from '/@/components/registerGlobComp'; import { isDevMode, isProdMode, isUseMock } from '/@/utils/env'; import { setupProdMockServer } from '../mock/_createProductionServer'; +import { setApp } from './useApp'; import App from './App.vue'; import '/@/design/index.less'; @@ -26,8 +26,6 @@ setupDirectives(app); setupErrorHandle(app); -registerGlobComp(app); - router.isReady().then(() => { app.mount('#app'); }); @@ -40,4 +38,5 @@ if (isDevMode()) { if (isProdMode() && isUseMock()) { setupProdMockServer(); } -export default app; + +setApp(app); diff --git a/src/setup/ant-design-vue/index.ts b/src/setup/ant-design-vue/index.ts index ab4807371ca..90d52b6cbab 100644 --- a/src/setup/ant-design-vue/index.ts +++ b/src/setup/ant-design-vue/index.ts @@ -2,13 +2,13 @@ import type { App } from 'vue'; -import { Form, Input, Button } from 'ant-design-vue'; +import { Form, Input } from 'ant-design-vue'; import 'ant-design-vue/dist/antd.css'; import './spin'; export function setupAntd(app: App) { - app.component(Button.Group.name, Button.Group); + // 这两个组件在登录也就用。全局注册 app.use(Form); app.use(Input); } diff --git a/src/useApp.ts b/src/useApp.ts index 74c1d4d1ac0..9525afc5412 100644 --- a/src/useApp.ts +++ b/src/useApp.ts @@ -1,5 +1,5 @@ import type { ProjectConfig } from '/@/types/config'; - +import type { App } from 'vue'; import { computed, ref } from 'vue'; import { ThemeModeEnum } from '/@/enums/appEnum'; @@ -17,6 +17,15 @@ import { PageEnum } from '/@/enums/pageEnum'; import { useTimeout } from '/@/hooks/core/useTimeout'; import { ExceptionEnum } from '/@/enums/exceptionEnum'; +let app: App; +export function setApp(_app: App): void { + app = _app; +} + +export function getApp(): App { + return app; +} + // TODO 主题切换 export function useThemeMode(mode: ThemeModeEnum) { const modeRef = ref(mode); diff --git a/src/views/sys/login/Login.vue b/src/views/sys/login/Login.vue index 6e1bbd16cec..6206cae98a5 100644 --- a/src/views/sys/login/Login.vue +++ b/src/views/sys/login/Login.vue @@ -49,8 +49,10 @@ import { appStore } from '/@/store/modules/app'; import { useMessage } from '/@/hooks/web/useMessage'; import { useSetting } from '/@/hooks/core/useSetting'; + import Button from '/@/components/Button/index.vue'; + export default defineComponent({ - components: { BasicDragVerify }, + components: { BasicDragVerify, AButton: Button }, setup() { const { globSetting } = useSetting(); const { notification } = useMessage(); diff --git a/vite.config.ts b/vite.config.ts index 6faef8ea81f..21789ff35a6 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -133,8 +133,7 @@ const viteConfig: UserConfig = { javascriptEnabled: true, }, }, - // 配置Dep优化行为 - // 会使用 rollup 对 包重新编译,将编译成符合 esm 模块规范的新的包放入 node_modules 下的 . + // 会使用 rollup 对 包重新编译,将编译成符合 esm 模块规范的新的包放入 node_modules/.vite_opt_cache optimizeDeps: { include: [ 'echarts',