fix. 코드 리팩토링
This commit is contained in:
27
app/app.vue
27
app/app.vue
@@ -18,15 +18,6 @@ const { gameData } = storeToRefs(gameDataStore)
|
||||
const { confirm, alert } = modalStore
|
||||
const { scrollGnbPosition } = storeToRefs(scrollStore)
|
||||
|
||||
const metaData = ref<GameDataMetaTag | null>(null)
|
||||
|
||||
// SSR에서 게임 데이터 가져오기
|
||||
const getGameDataFromServer = (): GameDataValue | null => {
|
||||
return import.meta.server
|
||||
? nuxtApp.ssrContext?.event?.context?.gameData
|
||||
: null
|
||||
}
|
||||
|
||||
// 통합 메타데이터 설정
|
||||
const setupAllMetaData = (data: GameDataValue) => {
|
||||
const meta = data.meta_tag_json ?? ({} as GameDataMetaTag)
|
||||
@@ -97,18 +88,12 @@ const setupAllMetaData = (data: GameDataValue) => {
|
||||
})
|
||||
}
|
||||
|
||||
// 메타 데이터 설정
|
||||
const setupMetaData = (data: GameDataValue) => {
|
||||
metaData.value = data.meta_tag_json
|
||||
setupAllMetaData(data)
|
||||
}
|
||||
|
||||
// 초기화 로직 실행
|
||||
const serverGameData = getGameDataFromServer()
|
||||
|
||||
if (serverGameData) {
|
||||
setGameData(serverGameData)
|
||||
setupMetaData(serverGameData)
|
||||
if (import.meta.server) {
|
||||
const gameData = nuxtApp.ssrContext?.event?.context?.gameData
|
||||
if (gameData) {
|
||||
setGameData(gameData)
|
||||
setupAllMetaData(gameData)
|
||||
}
|
||||
}
|
||||
|
||||
let rafId: number | null = null
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
import { defineNuxtConfig } from 'nuxt/config'
|
||||
import { resolve } from 'node:path'
|
||||
|
||||
export default defineNuxtConfig({
|
||||
// Layer-specific configuration
|
||||
alias: {
|
||||
'#layers': resolve(__dirname, '.'),
|
||||
},
|
||||
imports: {
|
||||
dirs: ['composables', 'stores', 'types', 'middleware', 'server', 'utils'],
|
||||
global: true,
|
||||
|
||||
@@ -68,31 +68,11 @@ export default defineNuxtConfig({
|
||||
'nuxt-gtag',
|
||||
'@nuxtjs/device',
|
||||
],
|
||||
imports: {
|
||||
dirs: [
|
||||
'layers/types',
|
||||
'layers/components',
|
||||
'layers/composables',
|
||||
'layers/layouts',
|
||||
'layers/middleware',
|
||||
'layers/plugins',
|
||||
'layers/registry',
|
||||
'layers/server',
|
||||
'layers/stores',
|
||||
'layers/utils',
|
||||
],
|
||||
global: true,
|
||||
},
|
||||
components: {
|
||||
dirs: ['~/components', 'layers/components'],
|
||||
global: true,
|
||||
},
|
||||
extends: ['./layers'],
|
||||
alias: {
|
||||
'@': resolve(__dirname, '.'),
|
||||
'#layers': resolve(__dirname, 'layers'),
|
||||
},
|
||||
extends: ['./layers'],
|
||||
|
||||
// i18n 설정 - 런타임에 동적으로 설정됨
|
||||
i18n: getI18n(),
|
||||
typescript: {
|
||||
@@ -101,7 +81,6 @@ export default defineNuxtConfig({
|
||||
},
|
||||
// [test] Nuxt가 pages 스캔하도록 명시
|
||||
pages: true,
|
||||
|
||||
// 런타임 환경 변수 설정
|
||||
runtimeConfig: {
|
||||
public: {
|
||||
|
||||
Reference in New Issue
Block a user