Browse Source

perf: 组件修改为setup

pull/2873/head
jinmao88 3 years ago
parent
commit
c6e5c0f5f1
  1. 5
      src/layouts/default/header/index.vue
  2. 4
      src/layouts/default/sider/LayoutSider.vue
  3. 18
      src/layouts/default/trigger/HeaderTrigger.vue
  4. 13
      src/layouts/default/trigger/SiderTrigger.vue
  5. 19
      src/layouts/default/trigger/index.vue

5
src/layouts/default/header/index.vue

@ -60,19 +60,16 @@
import { propTypes } from '/@/utils/propTypes';
import { Layout } from 'ant-design-vue';
import { AppLogo } from '/@/components/Application';
import { AppLogo, AppSearch, AppLocalePicker } from '/@/components/Application';
import LayoutMenu from '../menu/index.vue';
import LayoutTrigger from '../trigger/index.vue';
import { AppSearch } from '/@/components/Application';
import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useRootSetting } from '/@/hooks/setting/useRootSetting';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { SettingButtonPositionEnum } from '/@/enums/appEnum';
import { AppLocalePicker } from '/@/components/Application';
import { UserDropDown, LayoutBreadcrumb, FullScreen, Notify, ErrorAction } from './components';
import { useAppInject } from '/@/hooks/web/useAppInject';

4
src/layouts/default/sider/LayoutSider.vue

@ -31,15 +31,13 @@
import { Layout } from 'ant-design-vue';
import LayoutMenu from '../menu/index.vue';
import LayoutTrigger from '/@/layouts/default/trigger/index.vue';
import { MenuModeEnum, MenuSplitTyeEnum } from '/@/enums/menuEnum';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useTrigger, useDragLine, useSiderEvent } from './useLayoutSider';
import { useAppInject } from '/@/hooks/web/useAppInject';
import { useDesign } from '/@/hooks/web/useDesign';
import DragBar from './DragBar.vue';
export default defineComponent({
name: 'LayoutSideBar',
components: { Sider: Layout.Sider, LayoutMenu, DragBar, LayoutTrigger },

18
src/layouts/default/trigger/HeaderTrigger.vue

@ -3,23 +3,15 @@
<MenuUnfoldOutlined v-if="getCollapsed" /> <MenuFoldOutlined v-else />
</span>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
<script lang="ts" setup>
import { MenuUnfoldOutlined, MenuFoldOutlined } from '@ant-design/icons-vue';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
import { useDesign } from '/@/hooks/web/useDesign';
import { propTypes } from '/@/utils/propTypes';
export default defineComponent({
name: 'HeaderTrigger',
components: { MenuUnfoldOutlined, MenuFoldOutlined },
props: {
theme: propTypes.oneOf(['light', 'dark']),
},
setup() {
const { getCollapsed, toggleCollapsed } = useMenuSetting();
const { prefixCls } = useDesign('layout-header-trigger');
return { getCollapsed, toggleCollapsed, prefixCls };
},
defineProps({
theme: propTypes.oneOf(['light', 'dark']),
});
const { getCollapsed, toggleCollapsed } = useMenuSetting();
const { prefixCls } = useDesign('layout-header-trigger');
</script>

13
src/layouts/default/trigger/SiderTrigger.vue

@ -4,18 +4,9 @@
<DoubleLeftOutlined v-else />
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
<script lang="ts" setup>
import { DoubleRightOutlined, DoubleLeftOutlined } from '@ant-design/icons-vue';
import { useMenuSetting } from '/@/hooks/setting/useMenuSetting';
export default defineComponent({
name: 'SiderTrigger',
components: { DoubleRightOutlined, DoubleLeftOutlined },
setup() {
const { getCollapsed, toggleCollapsed } = useMenuSetting();
return { getCollapsed, toggleCollapsed };
},
});
const { getCollapsed, toggleCollapsed } = useMenuSetting();
</script>

19
src/layouts/default/trigger/index.vue

@ -2,21 +2,14 @@
<SiderTrigger v-if="sider" />
<HeaderTrigger v-else :theme="theme" />
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
<script lang="ts"></script>
<script lang="ts" setup>
import { propTypes } from '/@/utils/propTypes';
import HeaderTrigger from './HeaderTrigger.vue';
import SiderTrigger from './SiderTrigger.vue';
export default defineComponent({
name: 'LayoutTrigger',
components: {
SiderTrigger: createAsyncComponent(() => import('./SiderTrigger.vue')),
HeaderTrigger: HeaderTrigger,
},
props: {
sider: propTypes.bool.def(true),
theme: propTypes.oneOf(['light', 'dark']),
},
defineProps({
sider: propTypes.bool.def(true),
theme: propTypes.oneOf(['light', 'dark']),
});
</script>

Loading…
Cancel
Save