From 968f791f4b7112730813c8c990379051c3f8340d Mon Sep 17 00:00:00 2001 From: vben <anncwb@126.com> Date: 星期二, 20 十月 2020 21:06:12 +0800 Subject: [PATCH] perf: optimize the size of the first screen --- vite.config.ts | 3 - src/components/Table/src/hooks/useProps.ts | 9 ---- src/layouts/default/index.tsx | 7 +++ src/layouts/default/setting/index.vue | 2 src/setup/ant-design-vue/index.ts | 4 +- src/useApp.ts | 11 +++++ src/components/Table/src/props.ts | 2 CHANGELOG.zh_CN.md | 11 +++++ src/components/registerGlobComp.ts | 9 ++-- src/views/sys/login/Login.vue | 4 + src/main.ts | 7 +-- 11 files changed, 43 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.zh_CN.md b/CHANGELOG.zh_CN.md index b7c6812..17df41e 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 109a100..404ecfb 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 87dfc83..c8a7a81 100644 --- a/src/components/Table/src/props.ts +++ b/src/components/Table/src/props.ts @@ -133,7 +133,7 @@ }, bordered: { type: Boolean as PropType<boolean>, - default: true, + default: false, }, pagination: { type: [Object, Boolean] as PropType<PaginationProps | boolean>, diff --git a/src/components/registerGlobComp.ts b/src/components/registerGlobComp.ts index 202c2e7..15c2831 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<Element>) { +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 7702178..c3fc36a 100644 --- a/src/layouts/default/index.tsx +++ b/src/layouts/default/index.tsx @@ -13,12 +13,17 @@ 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() { + // ! 鍦ㄨ繖閲屾墠娉ㄥ唽鍏ㄥ眬缁勪欢 + // ! 鍙互鍑忓皯棣栧睆浠g爜浣撶Н + // default layout鏄湪鐧诲綍鍚庢墠鍔犺浇鐨勩�傛墍浠ヤ笉浼氭墦鍖呭埌棣栧睆鍘� + registerGlobComp(); + // 鑾峰彇椤圭洰閰嶇疆 const { getFullContent } = useFullContent(); diff --git a/src/layouts/default/setting/index.vue b/src/layouts/default/setting/index.vue index 497d87a..962fc50 100644 --- a/src/layouts/default/setting/index.vue +++ b/src/layouts/default/setting/index.vue @@ -1,6 +1,6 @@ <template> <div @click="openDrawer" class="setting-button"> - <SettingOutlined :spin="true" /> + <SettingOutlined /> <SettingDrawer @register="register" /> </div> </template> diff --git a/src/main.ts b/src/main.ts index cb9fe31..723451d 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,9 +6,9 @@ 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 @@ setupErrorHandle(app); -registerGlobComp(app); - router.isReady().then(() => { app.mount('#app'); }); @@ -40,4 +38,5 @@ 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 ab48073..90d52b6 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<Element>) { - app.component(Button.Group.name, Button.Group); + // 杩欎袱涓粍浠跺湪鐧诲綍涔熷氨鐢ㄣ�傚叏灞�娉ㄥ唽 app.use(Form); app.use(Input); } diff --git a/src/useApp.ts b/src/useApp.ts index 74c1d4d..9525afc 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 { 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 6e1bbd1..6206cae 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 6faef8e..21789ff 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -133,8 +133,7 @@ javascriptEnabled: true, }, }, - // 閰嶇疆Dep浼樺寲琛屼负 - // 浼氫娇鐢� rollup 瀵� 鍖呴噸鏂扮紪璇戯紝灏嗙紪璇戞垚绗﹀悎 esm 妯″潡瑙勮寖鐨勬柊鐨勫寘鏀惧叆 node_modules 涓嬬殑 . + // 浼氫娇鐢� rollup 瀵� 鍖呴噸鏂扮紪璇戯紝灏嗙紪璇戞垚绗﹀悎 esm 妯″潡瑙勮寖鐨勬柊鐨勫寘鏀惧叆 node_modules/.vite_opt_cache optimizeDeps: { include: [ 'echarts', -- Gitblit v1.8.0