Commit c6e5c0f5f17bc678fb4c613533b78ad04e1510bd
1 parent
ca997c15
perf: 组件修改为setup
Showing
5 changed files
with
15 additions
and
44 deletions
src/layouts/default/header/index.vue
@@ -60,19 +60,16 @@ | @@ -60,19 +60,16 @@ | ||
60 | import { propTypes } from '/@/utils/propTypes'; | 60 | import { propTypes } from '/@/utils/propTypes'; |
61 | 61 | ||
62 | import { Layout } from 'ant-design-vue'; | 62 | import { Layout } from 'ant-design-vue'; |
63 | - import { AppLogo } from '/@/components/Application'; | 63 | + import { AppLogo, AppSearch, AppLocalePicker } from '/@/components/Application'; |
64 | import LayoutMenu from '../menu/index.vue'; | 64 | import LayoutMenu from '../menu/index.vue'; |
65 | import LayoutTrigger from '../trigger/index.vue'; | 65 | import LayoutTrigger from '../trigger/index.vue'; |
66 | 66 | ||
67 | - import { AppSearch } from '/@/components/Application'; | ||
68 | - | ||
69 | import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; | 67 | import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'; |
70 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; | 68 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; |
71 | import { useRootSetting } from '/@/hooks/setting/useRootSetting'; | 69 | import { useRootSetting } from '/@/hooks/setting/useRootSetting'; |
72 | 70 | ||
73 | import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum'; | 71 | import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum'; |
74 | import { SettingButtonPositionEnum } from '/@/enums/appEnum'; | 72 | import { SettingButtonPositionEnum } from '/@/enums/appEnum'; |
75 | - import { AppLocalePicker } from '/@/components/Application'; | ||
76 | 73 | ||
77 | import { UserDropDown, LayoutBreadcrumb, FullScreen, Notify, ErrorAction } from './components'; | 74 | import { UserDropDown, LayoutBreadcrumb, FullScreen, Notify, ErrorAction } from './components'; |
78 | import { useAppInject } from '/@/hooks/web/useAppInject'; | 75 | import { useAppInject } from '/@/hooks/web/useAppInject'; |
src/layouts/default/sider/LayoutSider.vue
@@ -31,15 +31,13 @@ | @@ -31,15 +31,13 @@ | ||
31 | import { Layout } from 'ant-design-vue'; | 31 | import { Layout } from 'ant-design-vue'; |
32 | import LayoutMenu from '../menu/index.vue'; | 32 | import LayoutMenu from '../menu/index.vue'; |
33 | import LayoutTrigger from '/@/layouts/default/trigger/index.vue'; | 33 | import LayoutTrigger from '/@/layouts/default/trigger/index.vue'; |
34 | - | ||
35 | import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum'; | 34 | import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum'; |
36 | - | ||
37 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; | 35 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; |
38 | import { useTrigger, useDragLine, useSiderEvent } from './useLayoutSider'; | 36 | import { useTrigger, useDragLine, useSiderEvent } from './useLayoutSider'; |
39 | import { useAppInject } from '/@/hooks/web/useAppInject'; | 37 | import { useAppInject } from '/@/hooks/web/useAppInject'; |
40 | import { useDesign } from '/@/hooks/web/useDesign'; | 38 | import { useDesign } from '/@/hooks/web/useDesign'; |
41 | - | ||
42 | import DragBar from './DragBar.vue'; | 39 | import DragBar from './DragBar.vue'; |
40 | + | ||
43 | export default defineComponent({ | 41 | export default defineComponent({ |
44 | name: 'LayoutSideBar', | 42 | name: 'LayoutSideBar', |
45 | components: { Sider: Layout.Sider, LayoutMenu, DragBar, LayoutTrigger }, | 43 | components: { Sider: Layout.Sider, LayoutMenu, DragBar, LayoutTrigger }, |
src/layouts/default/trigger/HeaderTrigger.vue
@@ -3,23 +3,15 @@ | @@ -3,23 +3,15 @@ | ||
3 | <MenuUnfoldOutlined v-if="getCollapsed" /> <MenuFoldOutlined v-else /> | 3 | <MenuUnfoldOutlined v-if="getCollapsed" /> <MenuFoldOutlined v-else /> |
4 | </span> | 4 | </span> |
5 | </template> | 5 | </template> |
6 | -<script lang="ts"> | ||
7 | - import { defineComponent } from 'vue'; | 6 | +<script lang="ts" setup> |
8 | import { MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons-vue'; | 7 | import { MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons-vue'; |
9 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; | 8 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; |
10 | import { useDesign } from '/@/hooks/web/useDesign'; | 9 | import { useDesign } from '/@/hooks/web/useDesign'; |
11 | import { propTypes } from '/@/utils/propTypes'; | 10 | import { propTypes } from '/@/utils/propTypes'; |
12 | 11 | ||
13 | - export default defineComponent({ | ||
14 | - name: 'HeaderTrigger', | ||
15 | - components: { MenuUnfoldOutlined, MenuFoldOutlined }, | ||
16 | - props: { | ||
17 | - theme: propTypes.oneOf(['light', 'dark']), | ||
18 | - }, | ||
19 | - setup() { | ||
20 | - const { getCollapsed, toggleCollapsed } = useMenuSetting(); | ||
21 | - const { prefixCls } = useDesign('layout-header-trigger'); | ||
22 | - return { getCollapsed, toggleCollapsed, prefixCls }; | ||
23 | - }, | 12 | + defineProps({ |
13 | + theme: propTypes.oneOf(['light', 'dark']), | ||
24 | }); | 14 | }); |
15 | + const { getCollapsed, toggleCollapsed } = useMenuSetting(); | ||
16 | + const { prefixCls } = useDesign('layout-header-trigger'); | ||
25 | </script> | 17 | </script> |
src/layouts/default/trigger/SiderTrigger.vue
@@ -4,18 +4,9 @@ | @@ -4,18 +4,9 @@ | ||
4 | <DoubleLeftOutlined v-else /> | 4 | <DoubleLeftOutlined v-else /> |
5 | </div> | 5 | </div> |
6 | </template> | 6 | </template> |
7 | -<script lang="ts"> | ||
8 | - import { defineComponent } from 'vue'; | 7 | +<script lang="ts" setup> |
9 | import { DoubleRightOutlined, DoubleLeftOutlined } from '@ant-design/icons-vue'; | 8 | import { DoubleRightOutlined, DoubleLeftOutlined } from '@ant-design/icons-vue'; |
10 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; | 9 | import { useMenuSetting } from '/@/hooks/setting/useMenuSetting'; |
11 | 10 | ||
12 | - export default defineComponent({ | ||
13 | - name: 'SiderTrigger', | ||
14 | - components: { DoubleRightOutlined, DoubleLeftOutlined }, | ||
15 | - setup() { | ||
16 | - const { getCollapsed, toggleCollapsed } = useMenuSetting(); | ||
17 | - | ||
18 | - return { getCollapsed, toggleCollapsed }; | ||
19 | - }, | ||
20 | - }); | 11 | + const { getCollapsed, toggleCollapsed } = useMenuSetting(); |
21 | </script> | 12 | </script> |
src/layouts/default/trigger/index.vue
@@ -2,21 +2,14 @@ | @@ -2,21 +2,14 @@ | ||
2 | <SiderTrigger v-if="sider" /> | 2 | <SiderTrigger v-if="sider" /> |
3 | <HeaderTrigger v-else :theme="theme" /> | 3 | <HeaderTrigger v-else :theme="theme" /> |
4 | </template> | 4 | </template> |
5 | -<script lang="ts"> | ||
6 | - import { defineComponent } from 'vue'; | ||
7 | - import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'; | 5 | +<script lang="ts"></script> |
6 | +<script lang="ts" setup> | ||
8 | import { propTypes } from '/@/utils/propTypes'; | 7 | import { propTypes } from '/@/utils/propTypes'; |
9 | import HeaderTrigger from './HeaderTrigger.vue'; | 8 | import HeaderTrigger from './HeaderTrigger.vue'; |
9 | + import SiderTrigger from './SiderTrigger.vue'; | ||
10 | 10 | ||
11 | - export default defineComponent({ | ||
12 | - name: 'LayoutTrigger', | ||
13 | - components: { | ||
14 | - SiderTrigger: createAsyncComponent(() => import('./SiderTrigger.vue')), | ||
15 | - HeaderTrigger: HeaderTrigger, | ||
16 | - }, | ||
17 | - props: { | ||
18 | - sider: propTypes.bool.def(true), | ||
19 | - theme: propTypes.oneOf(['light', 'dark']), | ||
20 | - }, | 11 | + defineProps({ |
12 | + sider: propTypes.bool.def(true), | ||
13 | + theme: propTypes.oneOf(['light', 'dark']), | ||
21 | }); | 14 | }); |
22 | </script> | 15 | </script> |