계산된 구성 요소와 vuejs 동적 가져오기의 구성 요소를 가져올 때의 차이점은 무엇입니까?
사용자가 선택할 수 있는 페이지/컴포넌트에 4개의 컴포넌트가 있다고 가정합니다(예: Input comp | | Image Comp | | Video Comp | Vudio Comp).다음 두 가지 방법으로 천천히 로드할 수 있습니다.
1)
<template>
<component :is="compName">
</template>
data: () => ({compName: 'input'}),
components: {
input: () => import('/components/input'),
video: () => import('/components/video'),
audio: () => import('/components/audio'),
image: () => import('/components/image'),
}
2)
<template>
<component :is="loadComp">
</template>
data: () => ({compName: 'input'}),
computed: {
loadComp () {
const compName = this.compName
return () => import(`/components/${compName}`)
}
}
그게 무슨 차이가 있나요?다음 중 올바른 동적 가져오기 방법은 무엇입니까?잘 부탁드립니다
주요 차이점은 두 번째 사례에서 웹 팩은 빌드 시 무엇을 알 수 없다는 것입니다.compName
값은 런타임에 있을 수 있으므로 자동으로 각 파일에 대해 별도의 번들을 만듭니다./components/
폴더입니다.
import()에는 모듈 위치에 대한 정보가 적어도 포함되어 있어야 합니다.번들을 특정 디렉토리 또는 파일 세트로 제한할 수 있기 때문에 동적 표현을 사용할 때 잠재적으로 요구될 수 있는 모든 모듈이
import()
콜이 포함됩니다.예를들면,import('./locale/${language}.json')
모든 것을 야기할 것이다.json
줄서다./locale
새 청크로 번들되는 디렉토리.실행 시 변수 언어가 계산되면 다음과 같은 파일이 있습니다.english.json
또는german.json
사용할 수 있습니다.
"매직 댓글"을 사용하여 무엇이 포함되어야 하는지, 무엇이 포함되지 않아야 하는지 조정할 수 있습니다.예를 들어, 다음과 같이만 번들됩니다..json
폴더로부터의 파일
import(
/* webpackInclude: /\.json$/ */
`./locale/${language}`)
원하는 경우 동적 가져오기를 수행하는 데 두 가지 방법이 모두 유효하고 올바른 방법입니다.두 번째 장점은 Import를 일일이 작성할 필요가 없다는 것입니다.
두 번째 큰 차이는 컴포넌트가 첫 번째 등록된 경우이며 템플릿에서 정상적으로 이름을 사용할 수 있습니다.
<template>
<input />
<video />
</template>
...두 번째 케이스와 같이 해결된 컴포넌트는 등록되지 않았으며 다음에서만 사용할 수 있습니다.<component :is="computed" />
언급URL : https://stackoverflow.com/questions/59407660/what-is-the-difference-when-importing-components-in-computed-and-components-in-v
'sourcecode' 카테고리의 다른 글
Linux에서의 낮은 memcpy 퍼포먼스 (0) | 2022.08.31 |
---|---|
Java: 0 <= x < n 범위의 난수 (0) | 2022.08.31 |
문자열 형식으로 주어진 수학 식을 어떻게 평가합니까? (0) | 2022.08.31 |
JDK와 JRE의 차이점은 무엇입니까? (0) | 2022.08.31 |
vue-router의 "$router.push()"에 사용자 지정 데이터 전달 (0) | 2022.08.31 |