반응형
Nuxt 라우터에서 동적으로 구성 요소 선택
모든 언어에 대해 동일한 구성요소를 제공하고 싶다.번역은 부품 안에서 할 것이다.URL 및 구성 요소 관계는 다음과 같아야 한다.
pseudocode:
browserurl: "/blogpost_1"
nuxtcomponent: "blogpost_1"
browserurl: "/en/blogpost_1"
nuxtcomponent: "blogpost_1"
browserurl: "/randompage"
nuxtcomponent: "randompage"
browserurl: "/en/randompage"
nuxtcomponent: "randompage"
나의 접근방법은 다음과 같은 것이었는데, 불행히도 pathMatch에 접속할 수 있는 방법을 찾을 수 없다.
router: {
extendRoutes(routes, resolve){
routes.push({
path: 'en/*',
component: resolve(__dirname, '/' + somehow.access.pathMatch )
})
}
}
구성 요소를 동적으로 해결할 수 없을 것 같아. component:
예상 구성요소 인스턴스 또는 약속.약속이 해결되면 결과가 캐시된다.나는 내비게이션 가드를 이용한 해결책과 "손에 의한" 부품 교환을 상상할 수 있지만, 그것은 손으로 보는 것 등을 통해 정보를 가져와야 한다.
따라서 nnxt에 의해 생성된 경로를 다시 작성하여 옵션 경로 세그먼트를 포함하는 것이 가장 좋은 방법임/about
로/:lang(en|jp)?/about
그래서 그것은 다음과 같은 길을 받아들인다운/en/about
) - 그러면 구성 요소가 수신됨lang
에 대해 비어 있는 매개 변수/about
그렇지 않으면 그것은 언어를 포함할 것이다...
- 메타에서 사용 가능한 번역 정의
- 번역으로 페이지 경로 다시 쓰기
페이지에서:
<script>
export default {
meta: {
translations: ['en', 'jp']
}
}
</script>
Nuxt 구성(의사 - 테스트되지 않음)
router: {
extendRoutes(routes, resolve) {
const routesWithTranslation = routes.filter(i => i.meta.translations && i.meta.translations.length > 0);
routesWithTranslation.forEach(route => {
const segment = `/:lang(${route.meta.translations.join("|")})?`
route.path = segment + route.path
})
}
참조URL: https://stackoverflow.com/questions/59392801/dynamically-choose-compontent-in-nuxt-router
반응형
'programing' 카테고리의 다른 글
파이톤 대본에 #!(쉐뱅)을 넣어야 하나, 어떤 형식을 취해야 하나? (0) | 2022.04.01 |
---|---|
vue 및 vuex 상태를 초기화할 시기 (0) | 2022.04.01 |
대응 라우터 URL 매개 변수가 작동하지 않음 (0) | 2022.04.01 |
Vuetify Data Iterator + Data 테이블의 페이지당 행 항목 이해, 기본 페이지를 설정할 수 있는가? (0) | 2022.04.01 |
농담을 사용한 Redex 폼 테스트 (0) | 2022.04.01 |