Dva: Dva에 index.js 파일의 λͺ¨λ“  μ½”λ“œκ°€μžˆλŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? λΈ”λ‘μœΌλ‘œ νŒ¨ν‚€μ§€ 된 데λͺ¨κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

에 λ§Œλ“  2016λ…„ 12μ›” 23일  Β·  19μ½”λ©˜νŠΈ  Β·  좜처: dvajs/dva

Dva에 index.js 파일의 λͺ¨λ“  μ½”λ“œκ°€μžˆλŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ? λΈ”λ‘μœΌλ‘œ νŒ¨ν‚€μ§€ 된 데λͺ¨κ°€ μžˆμŠ΅λ‹ˆκΉŒ?

question

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λͺ¨λ“  19 λŒ“κΈ€

μ‚΄νŽ΄λ³Έ 결과이 νŒ¨ν‚€μ§€κ°€ 같은 νŒŒμΌμ— 있고 λΆ„λ¦¬λ˜μ–΄ μžˆμ§€ μ•Šλ‹€λŠ” 것을 μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

μš”μ²­μ‹œλ‘œλ“œ ν•˜μ‹œκ² μŠ΅λ‹ˆκΉŒ? μ°Έμ‘° : https://github.com/dvajs/dva/tree/master/examples/dynamic-load

μ£Όλ¬Έν˜• λ‘œλ”©μ΄ μ•„λ‹ˆλΌ 블둝 νŒ¨ν‚€μ§• ...

ν•­λͺ©μ˜ 압좕을 ν’€λ €λ©΄ CommonsChunkPlugin 을 μ‚¬μš©ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ μž‘μ„±ν•œ Vue ν”„λ‘œμ νŠΈ, Vue ν”„λ‘œμ νŠΈλŠ” λ‹€μŒκ³Ό 같이 κ΅¬ν˜„λ©λ‹ˆλ‹€.
λΌμš°νŒ… :
const Login = r => require.ensure([], () => r(require('../components/login/Login.vue')), 'user') export default new Router({ mode: 'history', scrollBehavior: () => ({ y: 0 }), routes: [ { name: 'login', path: '/login', component: Login } ] })
μ›ΉνŒ© :
output: { path: config.build.assetsRoot, publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath, filename: '[name].js' },
κ·ΈλŸ¬λ‚˜ 이것을 dvaμ—μ„œ κ΅¬μ„±ν•˜λ©΄ νš¨κ³Όκ°€ μ—†μŠ΅λ‹ˆλ‹€.

이것은 단지 μš”μ²­μ— λ”°λΌλ‘œλ“œλ˜μ§€ μ•ŠμŠ΅λ‹ˆκΉŒ?

μ•„λ‹ˆμš”, 블둝 νŒ¨ν‚€μ§•λ„ κ΅¬ν˜„ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ‚΄ μ‹œμŠ€ν…œμ—λŠ” a, b;
dva ν”„λ‘œμ νŠΈμ—μ„œ a λ˜λŠ” b에 μ•‘μ„ΈμŠ€ν•˜λŠ” 것과 관계없이 μš”μ²­ 된 index.jsλŠ” λͺ¨λ‘ a와 b의 논리 μ½”λ“œλ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.
vue ν”„λ‘œμ νŠΈμ—μ„œ νŽ˜μ΄μ§€ a에 μ•‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•΄ μš”μ²­ 된 jsλŠ” a.index.js이고 νŽ˜μ΄μ§€ b에 μ•‘μ„ΈμŠ€ν•˜κΈ° μœ„ν•΄ μš”μ²­ 된 jsλŠ” b.index.jsμž…λ‹ˆλ‹€.μƒν˜Έ 포용 적이 지 μ•ŠμŒ

https://github.com/dvajs/dva/blob/master/examples/dynamic-load/router.js#L6 -L27
이 단락은 μ„€λͺ…ν•œ vue ν”„λ‘œμ νŠΈμ˜ 효과λ₯Ό μ–»κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€.

이 동적 λΌμš°νŒ…μ— λŒ€ν•œ μ½”λ“œλ₯Ό λ³Έ 적이 μžˆμ§€λ§Œ vue ν”„λ‘œμ νŠΈμ—μ„œ 아이디어λ₯Ό μ‹€ν˜„ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
`const 둜그인 = c => require.ensure ([], require => (
app.model (require ( './ models / login / loginModel')),
c (null, require ( './ routes / login / Login'))
));

const Main = c => require.ensure ([], require => (
app.model (require ( './ models / main / mainModel')),
c (null, require ( './ routes / main / Main'))
));

function interceptPermissions () {
const 토큰 = kits.getCookies ( 'tf-token');
const uid = kits.getCookies ( 'tf-uid');
if (! uid ||! token) {
app._store.dispatch (routerRedux.replace ( '/ login'))
}
}

λ°˜ν™˜ getComponent = {(μœ„μΉ˜, 콜백) => 둜그인 (콜백)} />
onenter = {interceptPermissions ()}
getComponent = {(μœ„μΉ˜, 콜백) => 메인 (콜백)}>




`
μ‹€ν–‰ μ‹œμž‘ λ˜λŠ” λΉŒλ“œμ— 관계없이 λͺ¨λ“  μ½”λ“œκ°€ index.js 파일둜 좜λ ₯λ˜λŠ” 경우 κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

ν‘œ

ν‘œ

ν‘œ

https://github.com/dvajs/dva/tree/master/examples/dynamic-load
μ œκ±°λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ£Όλ¬Έν˜• dva ꡬ성을 μ–΄λ””μ—μ„œ λ³Ό 수 μžˆμŠ΅λ‹ˆκΉŒ?κ°μ‚¬ν•©λ‹ˆλ‹€

ν‘œ

@AlaiNiGuests κ·€ν•˜μ˜ μ£Όμ†Œμ—μžˆλŠ” λ¬Έμ„œλ₯Ό μ‚΄νŽ΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€. dva 2.x μ΄μƒμ—μ„œ μ‚¬μš©ν•˜λ©΄ μ•ˆλ©λ‹ˆκΉŒ?
react-router 3.x λ˜λŠ” 4.x의 ꡬ문이 μžˆμŠ΅λ‹ˆκΉŒ?

ν‘œ

원본 ν¬μŠ€ν„°κ°€ μ–΄λ–»κ²Œ ν•΄κ²° ν–ˆλ‚˜μš”? μ½”λ“œλ₯Ό κ²Œμ‹œ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? κ°μ‚¬ν•©λ‹ˆλ‹€!

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰