Commit f81c401959dda4b8d568c00786b691c21abbb59c

Authored by vben
1 parent 27e50b47

perf(tabs): perf multiple-tabs

src/layouts/default/index.less deleted 100644 → 0
1 -@import (reference) '../../design/index.less';  
2 -  
3 -.default-layout {  
4 - display: flex;  
5 - width: 100%;  
6 - min-height: 100%;  
7 - background: @content-bg;  
8 - flex-direction: column;  
9 -  
10 - > .ant-layout {  
11 - min-height: 100%;  
12 - }  
13 -  
14 - &__main {  
15 - margin-left: 1px;  
16 - }  
17 -}  
src/layouts/default/index.tsx deleted 100644 → 0
1 -import './index.less';  
2 -  
3 -import { defineComponent, unref, ref } from 'vue';  
4 -import { Layout } from 'ant-design-vue';  
5 -import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';  
6 -  
7 -import LayoutHeader from './header/LayoutHeader';  
8 -import LayoutContent from './content/index.vue';  
9 -import LayoutSideBar from './sider';  
10 -import LayoutMultipleHeader from './header/LayoutMultipleHeader';  
11 -  
12 -import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';  
13 -import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';  
14 -import { createLayoutContext } from './useLayoutContext';  
15 -  
16 -import { registerGlobComp } from '/@/components/registerGlobComp';  
17 -import { createBreakpointListen } from '/@/hooks/event/useBreakpoint';  
18 -import { isMobile } from '/@/utils/is';  
19 -  
20 -const LayoutFeatures = createAsyncComponent(() => import('/@/layouts/default/feature/index.vue'));  
21 -const LayoutFooter = createAsyncComponent(() => import('/@/layouts/default/footer/index.vue'));  
22 -  
23 -export default defineComponent({  
24 - name: 'DefaultLayout',  
25 - setup() {  
26 - const headerRef = ref<ComponentRef>(null);  
27 - const isMobileRef = ref(false);  
28 -  
29 - createLayoutContext({ fullHeader: headerRef, isMobile: isMobileRef });  
30 -  
31 - createBreakpointListen(() => {  
32 - isMobileRef.value = isMobile();  
33 - });  
34 -  
35 - // ! Only register global components here  
36 - // ! Can reduce the size of the first screen code  
37 - // default layout It is loaded after login. So it won’t be packaged to the first screen  
38 - registerGlobComp();  
39 -  
40 - const { getShowFullHeaderRef } = useHeaderSetting();  
41 -  
42 - const { getShowSidebar } = useMenuSetting();  
43 -  
44 - return () => {  
45 - return (  
46 - <Layout class="default-layout">  
47 - {() => (  
48 - <>  
49 - <LayoutFeatures />  
50 -  
51 - {unref(getShowFullHeaderRef) && <LayoutHeader fixed={true} ref={headerRef} />}  
52 -  
53 - <Layout>  
54 - {() => (  
55 - <>  
56 - {unref(getShowSidebar) && <LayoutSideBar />}  
57 - <Layout class="default-layout__main">  
58 - {() => (  
59 - <>  
60 - <LayoutMultipleHeader />  
61 - <LayoutContent />  
62 - <LayoutFooter />  
63 - </>  
64 - )}  
65 - </Layout>  
66 - </>  
67 - )}  
68 - </Layout>  
69 - </>  
70 - )}  
71 - </Layout>  
72 - );  
73 - };  
74 - },  
75 -});  
src/layouts/default/useLayoutContext.ts
@@ -6,12 +6,12 @@ export interface LayoutContextProps { @@ -6,12 +6,12 @@ export interface LayoutContextProps {
6 isMobile: Ref<boolean>; 6 isMobile: Ref<boolean>;
7 } 7 }
8 8
9 -const layoutContextInjectKey: InjectionKey<LayoutContextProps> = Symbol(); 9 +const key: InjectionKey<LayoutContextProps> = Symbol();
10 10
11 export function createLayoutContext(context: LayoutContextProps) { 11 export function createLayoutContext(context: LayoutContextProps) {
12 - return createContext<LayoutContextProps>(context, layoutContextInjectKey); 12 + return createContext<LayoutContextProps>(context, key);
13 } 13 }
14 14
15 export function useLayoutContext() { 15 export function useLayoutContext() {
16 - return useContext<LayoutContextProps>(layoutContextInjectKey); 16 + return useContext<LayoutContextProps>(key);
17 } 17 }