perf(frontend): avoid needless AsyncComponentWrapper

This commit is contained in:
syuilo 2025-03-29 15:33:19 +09:00
parent 1af4081090
commit 490222fb78
3 changed files with 10 additions and 11 deletions

View File

@ -29,7 +29,7 @@ import { fetchCustomEmojis } from '@/custom-emojis.js';
import { prefer } from '@/preferences.js';
import { $i } from '@/i.js';
export async function common(createVue: () => App<Element>) {
export async function common(createVue: () => Promise<App<Element>>) {
console.info(`Misskey v${version}`);
if (_DEV_) {
@ -263,7 +263,7 @@ export async function common(createVue: () => App<Element>) {
});
});
const app = createVue();
const app = await createVue();
if (_DEV_) {
app.config.performance = true;

View File

@ -32,7 +32,7 @@ import { signout } from '@/signout.js';
import { migrateOldSettings } from '@/pref-migrate.js';
export async function mainBoot() {
const { isClientUpdated, lastVersion } = await common(() => {
const { isClientUpdated, lastVersion } = await common(async () => {
let uiStyle = ui;
const searchParams = new URLSearchParams(window.location.search);
@ -46,19 +46,19 @@ export async function mainBoot() {
let rootComponent: Component;
switch (uiStyle) {
case 'zen':
rootComponent = defineAsyncComponent(() => import('@/ui/zen.vue'));
rootComponent = await import('@/ui/zen.vue').then(x => x.default);
break;
case 'deck':
rootComponent = defineAsyncComponent(() => import('@/ui/deck.vue'));
rootComponent = await import('@/ui/deck.vue').then(x => x.default);
break;
case 'visitor':
rootComponent = defineAsyncComponent(() => import('@/ui/visitor.vue'));
rootComponent = await import('@/ui/visitor.vue').then(x => x.default);
break;
case 'classic':
rootComponent = defineAsyncComponent(() => import('@/ui/classic.vue'));
rootComponent = await import('@/ui/classic.vue').then(x => x.default);
break;
default:
rootComponent = defineAsyncComponent(() => import('@/ui/universal.vue'));
rootComponent = await import('@/ui/universal.vue').then(x => x.default);
break;
}

View File

@ -6,11 +6,10 @@
import { createApp, defineAsyncComponent } from 'vue';
import { common } from './common.js';
import { emojiPicker } from '@/utility/emoji-picker.js';
import UiMinimum from '@/ui/minimum.vue';
export async function subBoot() {
const { isClientUpdated } = await common(() => createApp(
defineAsyncComponent(() => import('@/ui/minimum.vue')),
));
const { isClientUpdated } = await common(async () => createApp(UiMinimum));
emojiPicker.init();
}