Vue: ์—ฐ๊ฒฐ ์œ ์ง€๊ฐ€ ์บ์‹œ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋™์ ์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 09์›” 04์ผ  ยท  49์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vuejs/vue

์ด ๊ธฐ๋Šฅ์€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

vue๋ฅผ ๋‹จ์ผ ํŽ˜์ด์ง€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์ „ํ™˜๋  ๋•Œ ์ „ํ™˜์„ ์œ„ํ•œ ํƒญ์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ํšจ๊ณผ๋ฅผ ์–ป์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ด์•„์žˆ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ € ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ๋„ˆ๋ฌด ํฝ๋‹ˆ๋‹ค. ์ „ํ™˜ ๊ฐ€๋Šฅํ•œ ํƒญ์ด ์ตœ๋Œ€ 10๊ฐœ์ด๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ „์—๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํƒญ์„ ์ž๋™์œผ๋กœ ๋‹ซ๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์บ์‹œ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ง€์šฐ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ API๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๊นŒ?

์˜ˆ: vm.$clearKeepAlived(routerName)

feature request

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

$destroy ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณด๋‹ˆ ์ปดํฌ๋„ŒํŠธ์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ๋™์ž‘์„ ํ†ตํ•ด ํŽ˜์ด์ง€๋ฅผ ๋– ๋‚  ๋•Œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์บ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
(์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ ์š”์†Œ, ์ด ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ์ถœ๋œ ํ›„ ์‚ญ์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ์ถœ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ์— ๊ณ„์†ํ•ด์„œ ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ์บ์‹œ๋ฅผ ๋ณด๊ด€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
๊ทธ๋Ÿฌ๋‚˜ ํŒŒ๊ดด ํ›„ ์ด ๊ตฌ์„ฑ ์š”์†Œ์— ๋‹ค์‹œ ์•ก์„ธ์Šค๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ์ด์ƒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋” ์ด์ƒ ์บ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  49 ๋Œ“๊ธ€

์‚ฌ์‹ค, ํฌ๋Ÿผ์—์„œ ์ด ์งˆ๋ฌธ์— ํ•œ ๋ฒˆ ๋Œ€๋‹ตํ•˜๊ธฐ ์ „์— keep-alive of include ๋˜๋Š” exclude ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด:
https://jsfiddle.net/jingkaizhao/m5tLg7wt/2/

์ด๊ฒƒ์€ #6259์˜ ๋ณต์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๊นŒ?

@posva ๋„ค, ๋น„์Šทํ•œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ์ค‘์— keep-alive ์บ์‹œ๋ฅผ ๋™์ ์œผ๋กœ ์ง€์šฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

@jkzing ๋Œ€๋‹จํžˆ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋ฐฉ๋ฒ•์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๋ชฉ๋ก ํŽ˜์ด์ง€์™€ ๊ฐ™์€ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ์•„์ง ํƒญ์—์„œ ์ „ํ™˜๋˜๋ฉด ์—ฐ๊ฒฐ ์œ ์ง€๊ฐ€ ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•œ ํ›„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์œผ๋ ค๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ๋ชฉ๋ก ํŽ˜์ด์ง€๋กœ ์ ํ”„ํ•˜๋ฉด ํŽ˜์ด์ง€๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋Š๋‚Œ ์ถฉ๋ถ„ํžˆ ์šฐ์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์œ„์˜ API๊ฐ€ ์žˆ์œผ๋ฉด ์ˆ˜์ •ํ•œ ํ›„์—๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.์ด ๋ผ์šฐํ„ฐ์˜ ์—ฐ๊ฒฐ ์œ ์ง€๊ฐ€ ์ง€์›Œ์ง€๊ณ  ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ง์”€๋“œ๋ฆฐ ๋‚ด์šฉ์ด ์ดํ•ด๊ฐ€ ๋˜์‹ค๋Ÿฐ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์š”์ปจ๋Œ€, ์ด์ „ iframe์˜ ๋ฉ€ํ‹ฐํƒญ ํšจ๊ณผ์™€ ๊ฐ™์€ ๋‹จ์ผ ํŽ˜์ด์ง€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์šฐ์•„ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

@okjesse ์ด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. include ๋˜๋Š” exclude ๋ฅผ ์ƒ์œ„ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜ vuex๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ vuex ์Šคํ† ์–ด์— include ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. .

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ Vue๋Š” ์ด๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์ธ API๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ, ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์•ฝ๊ฐ„ ์บก์Šํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@jkzing ์ดํ•ด, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ํ˜ผ์ž ์—ฐ๊ฒฐ ์œ ์ง€ ๊ตฌํ˜„์„ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๋ฐฉ๋ฒ•์„ ๋”ฐ๋ฅด๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@jkzing , ํ•˜์ง€๋งŒ ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋”๋ผ๋„ ์ด api๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜๋ฏธ๊ฐ€ ๋‹ค๋ฅผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ์œ ์ง€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ๊ณ  ๊ตฌ์„ฑ ์š”์†Œ ์ž์ฒด๊ฐ€ ์—ฌ์ „ํžˆ ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šค์œ„์น˜๊ฐ€ ์‚ด์•„์žˆ๋Š”์ง€ ์—ฌ๋ถ€

์ด๊ฒƒ์€ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๊ณ„์† ์—ด๋ฉด ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๊ฒฐ๊ตญ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ •์ง€๋ฉ๋‹ˆ๋‹ค. Keepalive์™€ ๊ด€๋ จ์ด ์—†์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด ํ˜„์ƒ์„ ์žฌํ˜„ํ•˜์—ฌ @jkzing์—๊ฒŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ์€ ํŽ˜์ด์ง€๋กœ ์ ํ”„ํ•˜๊ธฐ ์ง์ „์— ์บ์‹œ๋œ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์•„๋‹ˆ๋ฉด ์ƒˆ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.์˜ค๋ž˜๋œ API๋Š” ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

๋‚˜๋Š” ๋˜ํ•œ ์ด ์š”๊ตฌ ์‚ฌํ•ญ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ ๋‹ค์Œ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”๋‰ด ๋ชฉ๋ก์„ ํด๋ฆญํ•˜๊ณ  ํƒญ์— ๋ ˆ์ด๋ธ”์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์ƒˆ๋กœ ์—ด๋ฆฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์บ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ซ๊ธฐ ๋ ˆ์ด๋ธ”์„ ํด๋ฆญํ•˜๋ฉด ์บ์‹œ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋น„ํ™œ์„ฑํ™”๋œ ํ›„ํฌ ๊ธฐ๋Šฅ destroy(); ์ด๊ฒƒ์€ ์บ์‹œ๋ฅผ ์ง€์šธ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค์Œ์— ์—ฐ๊ฒฐ์ด ์—ด๋ฆด ๋•Œ ์ƒˆ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์บ์‹œ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

@fadexiii ๋™์ ์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์กด ๋ฐฉ๋ฒ•์„ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

@okjesse ๋‚ด ์—ฐ๊ฒฐ ์œ ์ง€์—๋Š” <router-view></router-view> ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

@okjesse ๋ฐฉ๊ธˆ conponent์˜ name ์†์„ฑ์„ ์ •์˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ •์˜ ํ›„์—๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : 2cba6d4cb1db8273ee45cccb8e50ebd87191244e์—์„œ ๊ตฌํ˜„๋จ

@fadexiii #6961 ๋‹น์‹ ๊ณผ ๊ฐ™์€ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๊นŒ?

@Jack-93 keep-alive ํฌํ•จ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ํƒœ๊ทธ๊ฐ€ ์—ด๋ฆฌ๋ฉด ํ˜„์žฌ ๊ตฌ์„ฑ ์š”์†Œ ์ด๋ฆ„์ด ํฌํ•จ ๋ฐฐ์—ด์— ์ถ”๊ฐ€๋˜๊ณ  ํƒœ๊ทธ๊ฐ€ ๋‹ซํž ๋•Œ ๋‹ซ๋Š” ํƒœ๊ทธ์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ด๋ฆ„์ด ๋ฐฐ์—ด์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

$destroy ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณด๋‹ˆ ์ปดํฌ๋„ŒํŠธ์˜ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ๋™์ž‘์„ ํ†ตํ•ด ํŽ˜์ด์ง€๋ฅผ ๋– ๋‚  ๋•Œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์บ์‹œํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
(์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”์‹œ์ง€ ๊ตฌ์„ฑ ์š”์†Œ, ์ด ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ์ถœ๋œ ํ›„ ์‚ญ์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ์ถœ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ์— ๊ณ„์†ํ•ด์„œ ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ์บ์‹œ๋ฅผ ๋ณด๊ด€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
๊ทธ๋Ÿฌ๋‚˜ ํŒŒ๊ดด ํ›„ ์ด ๊ตฌ์„ฑ ์š”์†Œ์— ๋‹ค์‹œ ์•ก์„ธ์Šค๋ฅผ ๋ฐ˜๋ณตํ•˜๋ฉด ์ด์ƒํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋” ์ด์ƒ ์บ์‹œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฒ„๊ทธ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@wanyaxing ๋‚˜๋„ ๋‹น์‹ ๊ณผ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํ•˜์œ„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์บ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชฉ๋ก ํŽ˜์ด์ง€ A---"์„ธ๋ถ€ ์ •๋ณด ํŽ˜์ด์ง€ B---" 3๋‹จ๊ณ„ ํŽ˜์ด์ง€ D. ์•ž์œผ๋กœ ์ด๋™ํ•  ๋•Œ I All Opened ๊ฒฝ๋กœ๋Š” sessionStorage์— ์ €์žฅ๋˜๋ฉฐ, ๋Œ์•„์˜ฌ ๋•Œ ๋‹ค์Œ ๊ฒฝ๋กœ๊ฐ€ sessionStorage์— ์žˆ๋Š”์ง€ ํŒ๋‹จํ•˜์—ฌ ํ˜„์žฌ ์ธ์Šคํ„ด์Šค๋ฅผ ํŒŒ๊ธฐํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ ์ฒ˜์Œ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†๊ณ  ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, 2ํšŒ ์ด์ƒ ์ดํ›„์—๋Š” B๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ์บ์‹ฑ๋˜๋ฉฐ D์—์„œ B๋กœ ๋Œ์•„์˜ฌ ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด B๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ์ด์ „์— ์บ์‹œ๋œ B๋Š” ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์—ฌ์ „ํžˆ ๋ฉ”๋ชจ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
image

ํ•ต์‹ฌ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
image

@realfly08 ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด PR์„ ์ œ์ถœํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์ œ์ถœ์— ์‹คํŒจํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค -https :

์ €๋„ ์ด์ „์— ์‚ฌ์ดํŠธ ์ „์ฒด ์บ์‹œ๋ฅผ ์ค€๋น„ํ•˜๋‹ค๊ฐ€ ๋…ผ๋ฆฌ์ ์ธ ์บ์‹œ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์ œ ์ „์ฒด ์‚ฌ์ดํŠธ ์บ์‹œ๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ํ‚ค ์–‘์‹ ํŽ˜์ด์ง€์˜ ์บ์‹œ๋งŒ ์ผœ๊ณ  ํ˜„์žฌ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ฝ”๋“œ์—์„œ ๋™์ ์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋…ผ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค.

@wanyaxing ์ €๋„ ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•ด์•ผ ํ•  ๋…ผ๋ฆฌ ํ•จ์ˆ˜๋Š” A->B->C 3 ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. ์บ์‹œ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์‹œ ์ž…๋ ฅํ•  ๋•Œ ๋‹ค์‹œ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ ํŽ˜์ด์ง€๋Š” ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. , ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ํŽ˜์ด์ง€ B์—์„œ ํŒ๋‹จํ•œ๋‹ค. ์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๋ ค๋ฉด(go -1), ๋น„ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ํ˜„์žฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํŒŒ๊ดดํ•˜๊ณ  $destroy๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ๋‹ค์‹œ ํŽ˜์ด์ง€ C์— ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€๋ฉด ํŽ˜์ด์ง€ B๋กœ ๋Œ์•„๊ฐ„๋‹ค. , B ํŽ˜์ด์ง€๊ฐ€ ๋‹ค์‹œ ์ƒ์„ฑ ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋™์‹œ์— ์บ์‹œ์— B ํŽ˜์ด์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

https://www.jianshu.com/p/cd1baf5b03b0
๋‚˜๋Š” ์ด๊ฒƒ์„ ์ปดํŒŒ์ผํ–ˆ๋‹ค

@fadexiii ์—ฐ๊ฒฐ ์œ ์ง€ ๋ผ์šฐํ„ฐ ๋ณด๊ธฐ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  <keep-alive :include="includes">
     <router-view></router-view>
  </keep-alive>

ํฌํ•จ์€ ๋ผ์šฐํŒ… ๊ตฌ์„ฑ์— ์ด๋ฆ„์„ ์”๋‹ˆ๋‹ค. '๋กœ๊ทธ์ธ'

const router = new Router({
  routes: [
    {
      path: '/login',
      name: 'login',
      component: Login
    }]
 })

๋นˆ ๋ฌธ์ž์—ด์— ํฌํ•จ์„ ํ• ๋‹นํ–ˆ๋Š”๋ฐ ์—ฌ์ „ํžˆ ์บ์‹œ๋  ์ˆ˜ ์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?๋‚ด ์š”๊ตฌ ์‚ฌํ•ญ์€ ์บ์‹œ ๋œ ๊ฒฝ๋กœ๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŒŒ๊ดดํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ปดํฌ๋„ŒํŠธ๊ฐ€ ํŒŒ๊ดด๋œ ํ›„ ์บ์‹œ๊ฐ€ ๋น„์›Œ์ง€์ง€ ์•Š๋Š”๋ฐ ๋ฌธ์ œ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
ํ”„๋กœ์ ํŠธ ๋‹ด๋‹น์ž๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด include์™€ ๊ฐ™์€ ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘์ ์œผ๋กœ ํŒŒ๊ดด๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์–ต๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@wanyaxing ์€ ์ œ์ถœํ•œ PR์„ ์ฝ์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ํšจํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์บ์‹œ ์ œ๊ฑฐ API๋ฅผ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@leixu2txtek ๊ทธ PR์„ ํฌ๊ธฐํ•˜๊ณ  ๊ฐ•์ œ๋กœ ์บ์‹œ๋ฅผ ์ง€์›Œ์„œ ๊ฐ€์žฅ ๋™์ ์œผ๋กœ ์บ์‹œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์‚ฌ์ดํŠธ ์ „์ฒด์—์„œ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํŽ˜์ด์ง€ ์ดํƒˆ์˜ ๋ผ์šฐํŒ… ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€๋กœ์ฑ„์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋”ฐ๋ผ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์€ ์ฐธ๊ณ ์šฉ์ž…๋‹ˆ๋‹ค.

  • ๋ผ์šฐํ„ฐ ๋ณด๊ธฐ๋ฅผ ์—ฐ๊ฒฐ ์œ ์ง€์— ๋„ฃ์œผ๋ฉด ์ „์ฒด ์‚ฌ์ดํŠธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    <keep-alive><router-view class="transit-view"></router-view></keep-alive>
  • ๊ฒฝ๋กœ์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋ ˆ์ด์–ด๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด meta.rank๋Š” ํŽ˜์ด์ง€ ์ˆ˜์ค€์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ 1.5>2.5>3.5๋Š” ์ฒซ ๋ฒˆ์งธ ๋ ˆ์ด์–ด์—์„œ ์„ธ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋กœ ๋‘ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
routes: [
{   path: '/', redirect:'/yingshou', },
{   path: '/yingshou',                meta:{rank:1.5,isShowFooter:true},          },
{   path: '/contract_list',           meta:{rank:1.5,isShowFooter:true},          },
{   path: '/customer',                meta:{rank:1.5,isShowFooter:true},          },
{   path: '/wode',                    meta:{rank:1.5,isShowFooter:true},          },
{   path: '/yingfu',                  meta:{rank:1.5,isShowFooter:true},          },
{   path: '/yingfu/pact_list',        meta:{rank:2.5},                            },
{   path: '/yingfu/pact_detail',      meta:{rank:3.5},                            },
{   path: '/yingfu/expend_view',      meta:{rank:4.5},                            },
{   path: '/yingfu/jizhichu',         meta:{rank:5.5},                            },
{   path: '/yingfu/select_pact',      meta:{rank:6.5},                            },
{   path: '/yingfu/jiyingfu',         meta:{rank:7.5},                            },
]
  • ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ์บ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” [์บ์‹œ๊ฐ€ ์–ธ์ œ ํŒŒ๊ดด๋ ๊นŒ์š”? ]. ๋‚ด ๋””์ž์ธ์€ ๋™์ผํ•œ ์ˆ˜์ค€์—์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•  ๋•Œ ํ˜„์žฌ ํŽ˜์ด์ง€ ์บ์‹œ๊ฐ€ ์œ ์ง€๋˜๊ณ  [์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐˆ ๋•Œ ํ˜„์žฌ ํŽ˜์ด์ง€ ์บ์‹œ๊ฐ€ ํŒŒ๊ดด๋จ]์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ main.js์—์„œ๋Š” Vue.mixin ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๋กœ ์ดํƒˆ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ , ๊ฐ€๋กœ์ฑ„๊ธฐ ๋ฉ”์„œ๋“œ์—์„œ ํŽ˜์ด์ง€ ์บ์‹œ๋ฅผ ํŒŒ๊ดดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Vue.mixin({
    beforeRouteLeave:function(to, from, next){
        if (from && from.meta.rank && to.meta.rank && from.meta.rank>to.meta.rank)
        {//ๅฆ‚ๆžœ่ฟ”ๅ›žไธŠไธ€ๅฑ‚๏ผŒๅˆ™ๆ‘งๆฏๆœฌๅฑ‚็ผ“ๅญ˜ใ€‚
            if (this.$vnode && this.$vnode.data.keepAlive)
            {
                if (this.$vnode.parent && this.$vnode.parent.componentInstance && this.$vnode.parent.componentInstance.cache)
                {
                    if (this.$vnode.componentOptions)
                    {
                        var key = this.$vnode.key == null
                                    ? this.$vnode.componentOptions.Ctor.cid + (this.$vnode.componentOptions.tag ? `::${this.$vnode.componentOptions.tag}` : '')
                                    : this.$vnode.key;
                        var cache = this.$vnode.parent.componentInstance.cache;
                        var keys  = this.$vnode.parent.componentInstance.keys;
                        if (cache[key])
                        {
                            if (keys.length) {
                                var index = keys.indexOf(key);
                                if (index > -1) {
                                    keys.splice(index, 1);
                                }
                            }
                            delete cache[key];
                        }
                    }
                }
            }
            this.$destroy();
        }
        next();
    },
});

์š”์•ฝ: ์‚ฌ์‹ค ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์œ„์น˜ํ•œ ์ƒ์œ„ keepAlive ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์บ์‹œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚œํญํ•˜๊ฒŒ ์กฐ์ž‘ํ•œ๋‹ค. . .

์‹ฌํ”Œํ•˜๊ณ  ์ง์„ค์ ์ด์ง€๋งŒ ์•„์ฃผ ๊ณ ๊ธ‰์Šค๋Ÿฝ์ง„ ์•Š์•„๋„ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•ด์š” ใ…Žใ…Žใ…Ž :)

๋ฌผ๋ก  ์•„์ง๊นŒ์ง€๋Š” ๊ณต์‹ ์ง€์› API๊ฐ€ ๋” ์ž˜ ๋‚˜์™”์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žจ์ž…๋‹ˆ๋‹ค.

@wanyaxing ๋ผ์šฐํŒ…์„ ํ†ตํ•ด ํŽ˜์ด์ง€ ์บ์‹ฑ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‚˜๋Š” /executed/์™€ ๊ทธ์˜ ์ž์‹ ๋ผ์šฐํŠธ /executed/chart/๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฃจํŠธ๊ฐ€ ๋– ๋‚  ๋•Œ ์บ์‹œํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํŒŒ๊ดดํ•˜๊ธฐ ์œ„ํ•ด mixin ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์€ ๋ผ์šฐํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์œ„ ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ์ƒ์œ„ ์ƒ์œ„ ํ•ญ๋ชฉ์€ ์บ์‹œ๋˜๊ณ  ๋‹ค๋ฅธ ์กฐ๊ฑด์€ ์†Œ๋ฉธ๋˜๋ฏ€๋กœ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋ผ์šฐํŒ…๋งŒ ์ œ์–ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

// ๆ”ฏๆŒ้กต้ขไฟๆŒ
Vue.mixin({
  beforeRouteLeave(to, from, next) {

    if (!to.path.startsWith(from.path)) this.$destroy();

    next();

  }
});

@wanyaxing ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์ฝ”๋“œ๋Š” ์ €์—๊ฒŒ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ฐธ์กฐํ•˜์ž

์บ์‹œ๊ฐ€ ํŒŒ๊ดด๋˜์ง€ ์•Š์•˜์Œ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค.@LinusBorg ์™€ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์„ ์„ ๋‹คํ•˜์„ธ์š”

@wanyaxing ์ €๋Š” vue์˜ ํ•ต์‹ฌ ์ฝ”๋“œ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์บ์‹œ๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์ฝ”๋“œ๊ฐ€ ๋” ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ์ข‹์Šต๋‹ˆ๋‹ค. ์ž„์‹œ๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋ฌด์›์ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๋งŽ์€ ์ •๋ณด๋ฅผ ํ™•์ธํ•ด๋ณธ ์‚ฌ๋žŒ์ด ๋งŽ์ง€ ์•Š๋ƒ๊ณ  ๋ฌผ์–ด๋ณด๋‹ˆ ์ด๋Ÿฐ ์ €๋Ÿฐ ๋ฌธ์ œ๊ฐ€

ใ…‹.
์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ @leixu2txtek ์€ https://github.com/wanyaxing/vue-router-then ๊ณผ ๊ฒฐํ•ฉ๋œ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ถŒ์žฅํ•˜๋ฉฐ ํšจ๊ณผ๊ฐ€ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.
vue-router-then์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ์„œ๋ธŒํŽ˜์ด์ง€๋ฅผ ์—ด๋ฉด ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ์„œ๋ธŒํŽ˜์ด์ง€์˜ ์ •๋ณด๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
this.$routerThen.push('/chose').then(vm => {})

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ๋ฌธ ํŽ˜์ด์ง€๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์„ ํƒ์„ ์œ„ํ•ด ์ฃผ์†Œ ๋ชฉ๋ก์„ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<input v-model="price" v-model-link="'/select_address'" />

๊ทธ๋Ÿฐ ๋‹ค์Œ /select_address์— ์˜ํ•ด ์—ด๋ฆฐ ๊ฒฝ๋กœ์—์„œ ์ฃผ์†Œ๋ฅผ ์„ ํƒํ•œ ํ›„ ์ž…๋ ฅ ์ด๋ฒคํŠธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ณ  ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

<script>
methods:{
    clickSomeOne:function(value){
        this.$emit('input',value);
        this.$router.go(-1);
    },
}
</script>

์ด๊ฒƒ์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์บ์‹ฑ ์ „๋žต์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ€๋ชจ์™€ ์ž์‹ ๋ผ์šฐํŒ… ๊ฐ„์˜ ์ง์ ‘์ ์ธ ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•˜์ง€๋งŒ ๊ตฌํ˜„ ํ›„์—๋Š” ๋งค์šฐ ํฅ๋ฏธ๋กœ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์•„์ด๋””์–ด๋Š” ๋งค์šฐ ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค. vuex์— ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. , ํŽ˜์ด์ง€๋ฅผ ์—ด์–ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

@fadexiii ๋ผ์šฐํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ผ์šฐํ„ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์— ์ด๋ฆ„์„ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”?
---- ๋ผ์šฐํ„ฐ.js ----

import ComponentA from 'views/a
export default [
  {path: 'a', component: ComponentA, name: a}
]

---- ์กฐํšŒ์ˆ˜/a.vue ----

export default {
  name: 'xxxa'
}

include์— ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ComponentA ๋˜๋Š” a ๋˜๋Š” xxxa์ž…๋‹ˆ๊นŒ?

@yiwuyu xxxa

@jkzing ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‘ ๋ฒˆ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ํ•˜๋‚˜๋Š” ์บ์‹ฑํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์บ์‹ฑํ•  โ€‹โ€‹ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€
๋ฉ”ํƒ€: {
keepAlive: true // ์บ์‹œํ•ด์•ผ ํ•จ
}
๋‹ซ๊ธฐ๋ฅผ ํด๋ฆญํ•˜๋ฉด false๋กœ ์„ค์ •
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฆฌ์Šค๋„ˆ๋ฅผ true๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ https://mp.csdn.net/postedit/82628953์„ ์ฐธ๊ณ 

ํƒญ์ด ์ „ํ™˜๋˜๋ฉด ์บ์‹œ๊ฐ€ ๋‹ซํžˆ๊ณ  ์บ์‹œ๊ฐ€ ํŒŒ๊ดด๋˜๋ฉฐ ๋‹ค์Œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ค‘์ฒฉ๋œ ํ•˜์œ„ ๋ผ์šฐํŒ… ํŽ˜์ด์ง€๋ฅผ ์—ด๊ณ  ๋‹ค์‹œ ๋กœ๋“œํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์‚ฌ์‹ค, ํฌ๋Ÿผ์—์„œ ์ด ์งˆ๋ฌธ์— ํ•œ ๋ฒˆ ๋Œ€๋‹ตํ•˜๊ธฐ ์ „์— keep-alive of include ๋˜๋Š” exclude ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๋ฉด:
https://jsfiddle.net/jingkaizhao/m5tLg7wt/2/

์ด ์˜ˆ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์‹ ๋“ค์—๊ฒŒ ๋ฌป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ œ ์‚ฌ์—…์€ ์ด๋Ÿฌํ•ฉ๋‹ˆ๋‹ค. ์™ผ์ชฝ์€ ์„ธ๋กœ ํƒญ์ž…๋‹ˆ๋‹ค. ์ด ํƒญ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์ ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒญ ์ค‘ ํ•˜๋‚˜๋ฅผ ํด๋ฆญํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ์— ํ•ด๋‹นํ•˜๋Š” ํƒญ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ๊ฐ™์€ ํŠธ๋ฆฌ์ด์ง€๋งŒ ํŠธ๋ฆฌ์—์„œ ์„ ํƒํ•œ ๋…ธ๋“œ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ์•„์ด๋””์–ด๋Š” ํƒญ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์˜ค๋ฅธ์ชฝ์— ํŠธ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํƒญ์„ ์ „ํ™˜ํ•  ๋•Œ ํŠธ๋ฆฌ๊ฐ€ ์ˆจ๊ฒจ์ง€๊ณ  ๊ทธ์— ๋”ฐ๋ผ ํ‘œ์‹œ๋˜์ง€๋งŒ(v-show), ๋” ๋งŽ์€ ํƒญ์ด ์žˆ์„ ๋•Œ ๋งŽ์€ ํŠธ๋ฆฌ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ์— ์žˆ๊ณ  dom ๋…ธ๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค. ๋””์Šคํ”Œ๋ ˆ์ด๋ฅผ ์ˆจ๊ธธ ํ•„์š”๊ฐ€ ์—†๊ณ  v-if๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ €์žฅํ•  ์ˆ˜ ์—†๋Š” ํŠธ๋ฆฌ ์ƒํƒœ(์„ ํƒ๋จ, ํ™•์žฅ๋จ, ์Šคํฌ๋กค๋จ)๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ๋‚˜์ค‘์— ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ๊ฒฐ ์œ ์ง€. ํ•˜์ง€๋งŒ ์ €๋Š” vue์˜ ๋‹จ์ผ ํŒŒ์ผ ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.ํƒญ์€ ๋ฉ”์ธ ํŽ˜์ด์ง€์— ์žˆ์Šต๋‹ˆ๋‹ค.ํŠธ๋ฆฌ๋Š” ๊ฐ€์ ธ์˜ค๋Š” ๊ตฌ์„ฑ ์š”์†Œ์ž…๋‹ˆ๋‹ค.๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ๊ตฌ์„ฑ ์š”์†Œ ์†์„ฑ์— ์ง์ ‘ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.์— ๋Œ€ํ•ด ์—ฌ๋Ÿฌ ์ด๋ฆ„์„ ๋งŒ๋“ค๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”? ๊ฒŒ์‹œํ•œ ๊ฐ™์€ ๋‚˜๋ฌด?? ํ•˜์ง€๋งŒ ์‚ฌ์‹ค ์ €๋Š” ์ปดํฌ๋„ŒํŠธ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์™ผ์ชฝ ํƒญ์—๋งŒ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฆ„์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” ์™ผ์ชฝ ํƒญ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๋ ค๋ฉด keepalive์—์„œ ์ด ํƒญ ํ•ญ๋ชฉ์— ํ•ด๋‹นํ•˜๋Š” ํŠธ๋ฆฌ ๋ฒ„ํผ๋„ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@leixu2txtek ๊ทธ PR์„ ํฌ๊ธฐํ•˜๊ณ  ๊ฐ•์ œ๋กœ ์บ์‹œ๋ฅผ ์ง€์›Œ์„œ ๊ฐ€์žฅ ๋™์ ์œผ๋กœ ์บ์‹œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ ์‚ฌ์ดํŠธ ์ „์ฒด์—์„œ ์บ์‹ฑ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํŽ˜์ด์ง€ ์ดํƒˆ์˜ ๋ผ์šฐํŒ… ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€๋กœ์ฑ„์„œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ๋”ฐ๋ผ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๋‹ค์Œ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์€ ์ฐธ๊ณ ์šฉ์ž…๋‹ˆ๋‹ค.

  • ๋ผ์šฐํ„ฐ ๋ณด๊ธฐ๋ฅผ ์—ฐ๊ฒฐ ์œ ์ง€์— ๋„ฃ์œผ๋ฉด ์ „์ฒด ์‚ฌ์ดํŠธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    <keep-alive><router-view class="transit-view"></router-view></keep-alive>
  • ๊ฒฝ๋กœ์˜ ๋ชจ๋“  ํŽ˜์ด์ง€๋ฅผ ๋ ˆ์ด์–ด๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด meta.rank๋Š” ํŽ˜์ด์ง€ ์ˆ˜์ค€์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ 1.5>2.5>3.5๋Š” ์ฒซ ๋ฒˆ์งธ ๋ ˆ์ด์–ด์—์„œ ์„ธ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋กœ ๋‘ ๋ฒˆ์งธ ๋ ˆ์ด์–ด๋กœ ์ง„์ž…ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
routes: [
{   path: '/', redirect:'/yingshou', },
{   path: '/yingshou',                meta:{rank:1.5,isShowFooter:true},          },
{   path: '/contract_list',           meta:{rank:1.5,isShowFooter:true},          },
{   path: '/customer',                meta:{rank:1.5,isShowFooter:true},          },
{   path: '/wode',                    meta:{rank:1.5,isShowFooter:true},          },
{   path: '/yingfu',                  meta:{rank:1.5,isShowFooter:true},          },
{   path: '/yingfu/pact_list',        meta:{rank:2.5},                            },
{   path: '/yingfu/pact_detail',      meta:{rank:3.5},                            },
{   path: '/yingfu/expend_view',      meta:{rank:4.5},                            },
{   path: '/yingfu/jizhichu',         meta:{rank:5.5},                            },
{   path: '/yingfu/select_pact',      meta:{rank:6.5},                            },
{   path: '/yingfu/jiyingfu',         meta:{rank:7.5},                            },
]
  • ๋ชจ๋“  ํŽ˜์ด์ง€๊ฐ€ ์บ์‹œ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” [์บ์‹œ๊ฐ€ ์–ธ์ œ ํŒŒ๊ดด๋ ๊นŒ์š”? ]. ๋‚ด ๋””์ž์ธ์€ ๋™์ผํ•œ ์ˆ˜์ค€์—์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ์ „ํ™˜ํ•  ๋•Œ ํ˜„์žฌ ํŽ˜์ด์ง€ ์บ์‹œ๊ฐ€ ์œ ์ง€๋˜๊ณ  [์ด์ „ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐˆ ๋•Œ ํ˜„์žฌ ํŽ˜์ด์ง€ ์บ์‹œ๊ฐ€ ํŒŒ๊ดด๋จ]์ž…๋‹ˆ๋‹ค.
  • ๊ทธ๋ž˜์„œ main.js์—์„œ๋Š” Vue.mixin ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๋กœ ์ดํƒˆ ์ด๋ฒคํŠธ๋ฅผ ๊ฐ€๋กœ์ฑ„๊ณ , ๊ฐ€๋กœ์ฑ„๊ธฐ ๋ฉ”์„œ๋“œ์—์„œ ํŽ˜์ด์ง€ ์บ์‹œ๋ฅผ ํŒŒ๊ดดํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
Vue.mixin({
    beforeRouteLeave:function(to, from, next){
        if (from && from.meta.rank && to.meta.rank && from.meta.rank>to.meta.rank)
        {//ๅฆ‚ๆžœ่ฟ”ๅ›žไธŠไธ€ๅฑ‚๏ผŒๅˆ™ๆ‘งๆฏๆœฌๅฑ‚็ผ“ๅญ˜ใ€‚
            if (this.$vnode && this.$vnode.data.keepAlive)
            {
                if (this.$vnode.parent && this.$vnode.parent.componentInstance && this.$vnode.parent.componentInstance.cache)
                {
                    if (this.$vnode.componentOptions)
                    {
                        var key = this.$vnode.key == null
                                    ? this.$vnode.componentOptions.Ctor.cid + (this.$vnode.componentOptions.tag ? `::${this.$vnode.componentOptions.tag}` : '')
                                    : this.$vnode.key;
                        var cache = this.$vnode.parent.componentInstance.cache;
                        var keys  = this.$vnode.parent.componentInstance.keys;
                        if (cache[key])
                        {
                            if (keys.length) {
                                var index = keys.indexOf(key);
                                if (index > -1) {
                                    keys.splice(index, 1);
                                }
                            }
                            delete cache[key];
                        }
                    }
                }
            }
            this.$destroy();
        }
        next();
    },
});

์š”์•ฝ: ์‚ฌ์‹ค ํŽ˜์ด์ง€ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์œ„์น˜ํ•œ ์ƒ์œ„ keepAlive ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์บ์‹œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚œํญํ•˜๊ฒŒ ์กฐ์ž‘ํ•œ๋‹ค. . .

์‹ฌํ”Œํ•˜๊ณ  ์ง์„ค์ ์ด์ง€๋งŒ ์•„์ฃผ ๊ณ ๊ธ‰์Šค๋Ÿฝ์ง„ ์•Š์•„๋„ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•ด์š” ใ…Žใ…Žใ…Ž :)

๋ฌผ๋ก  ์•„์ง๊นŒ์ง€๋Š” ๊ณต์‹ ์ง€์› API๊ฐ€ ๋” ์ž˜ ๋‚˜์™”์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žจ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•ด์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. keepalive๋ฅผ ๋„๋ฉด ์ž˜ ๋ฉ๋‹ˆ๋‹ค. keepalive๋ฅผ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ์ˆ˜๋™์œผ๋กœ ์บ์‹œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํŒŒ๊ดดํ•˜๋Š” ๊ฒƒ์ด ์—ฌ์ „ํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ถ€๋ถ„์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด์…จ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

@Liudapeng ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ž˜ ๊ณต๋ถ€ํ•œ ์ ์ด ์—†์–ด์„œ ๋Œ€๋žต์ ์ธ ํ…Œ์ŠคํŠธ๋ฅผ

์š”์ฆ˜ ์ข€ ๋ฐ”๋น ์„œ ์ดํ‹€ ์ „์— ๋‹น์‹ ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๊ณ  ๋‹ต์žฅ์„ ๋ณด๋‚ผ ์‹œ๊ฐ„์ด ์—†์—ˆ์–ด์š”.

ํŽ˜์ด์ง€์˜ 5~6๊ฐœ ์ˆ˜์ค€์œผ๋กœ ๊นŠ์ˆ™์ด ๋“ค์–ด๊ฐ„ ๋‹ค์Œ ํ™ˆ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ€๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•˜์—ฌ ๋˜ ๋‹ค๋ฅธ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํƒ€์ž„๋ผ์ธ์˜ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์ผœ๊ณ  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋™์ ์œผ๋กœ ํŒŒ๊ดดํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐฉ๋ฒ• ์‚ฌ์šฉ).
    > ํƒ€์ž„๋ผ์ธ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋“œ๋ž์ด ํ™•์‹คํžˆ ๋ณด์ด๋„ค์š”.. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ง๊ฐ€์ง„๊ฑฐ ๊ฐ™์•„์š”.
    snipaste_2018-09-29_17-53-09

์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

ํ‚ต์–ผ๋ผ์ด๋ธŒ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ์Šคํƒ์€ ๊ทธ๋‹ค์ง€ ๋น ๋ฅด์ง€ ์•Š์ง€๋งŒ ๊ณ„์†ํ•ด์„œ ๋†’์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๋‚ด ์ฝ”๋“œ๊ฐ€ ๊ธ‰ํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋˜๊ณ  ๋‹ค๋ฅธ ๊ณณ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ)
snipaste_2018-09-29_17-50-40

ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์  ์†Œ๋ฉธ์„ ์‚ฌ์šฉํ•œ ํ›„์—๋„ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์€ ์—ฌ์ „ํžˆ โ€‹โ€‹ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์œ„ ๋‚ด์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์†Œ๋ฉธ๋  ๋•Œ ๋ฐ”์ธ๋”ฉ ์ด๋ฒคํŠธ๊ฐ€ ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์š”์†Œ๋Š” keepAlive์˜ ์บ์‹œ ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐ๋˜์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ™•์ธ ํ•ด์ฃผ์„ธ์š”.

@wanyaxing ๋‚ด ํ”„๋กœ์ ํŠธ์— ์—ฐ๊ฒฐ ์œ ์ง€ ์—†์ด ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
image
๋™์  ๊ตฌ์„ฑ ์š”์†Œ์˜ $destory() ํ˜ธ์ถœ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋…ธ๋“œ ์ˆ˜๊ฐ€ ๋งŽ์„์ˆ˜๋ก JS ํž™์ด ๋†’์•„์ง„๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋™์  ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ DOM์„ ํŒŒ๊ดดํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

@bigggge ์ด๋ฆ„์€ ๊ฒฝ๋กœ์˜ ์†์„ฑ์ด ์•„๋‹ˆ๋ผ ๊ตฌ์„ฑ ์š”์†Œ ๋‚ด๋ถ€์˜ ์†์„ฑ์ž…๋‹ˆ๋‹ค.

๋‚ด ์งˆ๋ฌธ์€ ๋” ์ด์ƒํ•˜๋‹ค. ๋‚ด vue ๋ฒ„์ „์€ 2.3.3์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ A์—๋Š” ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์Šคํฌ๋กคํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ A์—์„œ ํŽ˜์ด์ง€ B๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ B๋ฅผ ์Šคํฌ๋กคํ–ˆ์„ ๋•Œ ํŽ˜์ด์ง€ A์—์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ์ „ํžˆ ์ฒ˜ํ˜•๋ฉ๋‹ˆ๋‹ค. ์ „์—ญ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์œ„์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™œ์„ฑํ™” ๋œ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ƒ์„ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์งˆ๋ฌธ์€ ๋” ์ด์ƒํ•˜๋‹ค. ๋‚ด vue ๋ฒ„์ „์€ 2.3.3์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ A์—๋Š” ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์Šคํฌ๋กคํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ A์—์„œ ํŽ˜์ด์ง€ B๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ B๋ฅผ ์Šคํฌ๋กคํ–ˆ์„ ๋•Œ ํŽ˜์ด์ง€ A์—์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ์ „ํžˆ ์ฒ˜ํ˜•๋ฉ๋‹ˆ๋‹ค. ์ „์—ญ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์œ„์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™œ์„ฑํ™” ๋œ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ƒ์„ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ ๋ชจ๋‹ˆํ„ฐ๋ง์œผ๋กœ ์ธํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์Šคํฌ๋กค ์‹œ ํ˜„์žฌ ๊ฒฝ๋กœ์ธ์ง€ ํŒ๋‹จํ•˜๊ณ  ๋‹ค์Œ ํŽ˜์ด์ง€ ๋กœ๋“œ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์งˆ๋ฌธ์€ ๋” ์ด์ƒํ•˜๋‹ค. ๋‚ด vue ๋ฒ„์ „์€ 2.3.3์ž…๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ A์—๋Š” ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ์Šคํฌ๋กคํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ A์—์„œ ํŽ˜์ด์ง€ B๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€ B๋ฅผ ์Šคํฌ๋กคํ–ˆ์„ ๋•Œ ํŽ˜์ด์ง€ A์—์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ์ „ํžˆ ์ฒ˜ํ˜•๋ฉ๋‹ˆ๋‹ค. ์ „์—ญ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์œ„์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ™œ์„ฑํ™” ๋œ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์œ ํšจํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ƒ์„ฑ์„ ์‚ฌ์šฉํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ธ€๋กœ๋ฒŒ ๋ชจ๋‹ˆํ„ฐ๋ง์œผ๋กœ ์ธํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์Šคํฌ๋กค ์‹œ ํ˜„์žฌ ๊ฒฝ๋กœ์ธ์ง€ ํŒ๋‹จํ•˜๊ณ  ๋‹ค์Œ ํŽ˜์ด์ง€ ๋กœ๋“œ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, vue-infinite-scroll ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.๊ธ€๋กœ๋ฒŒ ์—ฐ๊ฒฐ ์œ ์ง€๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ชจ๋‹ˆํ„ฐ๋ง ์ด๋ฒคํŠธ๊ฐ€ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๋‹ค์‹œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ ์ง€์šฐ๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด @wanyaxing ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉ
https://gist.github.com/lingceng/c204bac2704d03db99932d5457e662e6

@jkzing ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‘ ๋ฒˆ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ํ•˜๋‚˜๋Š” ์บ์‹ฑํ•˜๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์บ์‹ฑํ•  โ€‹โ€‹ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ปดํฌ๋„ŒํŠธ ์ด๋ฆ„์ด ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

์ด ์งˆ๋ฌธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Include๋Š” ์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ผ์šฐํŒ… ํŽ˜์ด์ง€๊ฐ€ ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ ์š”์†Œ ์ด๋ฆ„์€ ํ•˜๋‚˜๋งŒ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

ํƒญ์ด ์ „ํ™˜๋˜๋ฉด ์บ์‹œ๊ฐ€ ๋‹ซํžˆ๊ณ  ์บ์‹œ๊ฐ€ ํŒŒ๊ดด๋˜๋ฉฐ ๋‹ค์Œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ค‘์ฒฉ๋œ ํ•˜์œ„ ๋ผ์šฐํŒ… ํŽ˜์ด์ง€๋ฅผ ์—ด๊ณ  ๋‹ค์‹œ ๋กœ๋“œํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

@heng1234์•ˆ๋…•ํ•˜์„ธ์š” ์ด ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐํ•˜์…จ๋‚˜์š”? ์•ˆ๋‚ด๋ฅผ ์œ„ํ•ด ์—ฐ๋ฝ์ฒ˜๋ฅผ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์ธ๊ฐ€์š”?

๋ผ์šฐํŒ… ๋ฐ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ „ํ™˜ํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์ „ํ™˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
https://blog.csdn.net/qq_39313596/article/details/82628953

[email protected]

๋ณด๋‚ธ์‚ฌ๋žŒ: Codezero123
์ „์†ก ์‹œ๊ฐ„: 2019-12-03 10:04
๋ฐ›๋Š” ์‚ฌ๋žŒ: vuejs/vue
์ฐธ์กฐ: hlvy; ์–ธ๊ธ‰
์ œ๋ชฉ: Re: [vuejs/vue] keep-alive๊ฐ€ ์บ์‹œ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋™์ ์œผ๋กœ ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค(#6509).
ํƒญ์ด ์ „ํ™˜๋˜๋ฉด ์บ์‹œ๊ฐ€ ๋‹ซํžˆ๊ณ  ์บ์‹œ๊ฐ€ ํŒŒ๊ดด๋˜๋ฉฐ ๋‹ค์Œ ๋ฒˆ์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ค‘์ฒฉ๋œ ํ•˜์œ„ ๋ผ์šฐํŒ… ํŽ˜์ด์ง€๋ฅผ ์—ด๊ณ  ๋‹ค์‹œ ๋กœ๋“œํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.
@heng1234์•ˆ๋…•ํ•˜์„ธ์š”, ์ด ํ•˜์…จ๋‚˜์š”?
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ๋ณด๊ฑฐ๋‚˜ ๊ตฌ๋…์„ ์ทจ์†Œํ•˜์„ธ์š”.

@wanyaxing ๋‹น์‹ ์€ 3๋‹จ๊ณ„ ๋ผ์šฐํŒ… ์บ์‹œ์— ํšจ๊ณผ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด vue-element-admin์—์„œ ์—ฌ๋Ÿฌ 3๋‹จ๊ณ„ ํƒœ๊ทธ ํƒœ๊ทธ๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ํƒœ๊ทธ ํƒœ๊ทธ๋ฅผ ์ „ํ™˜ํ•˜๋ฉด ์บ์‹œ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ํŒŒ๊ดด๋˜์ง€ ์•Š๊ณ  1/3๋งŒ ์—ด๋ฆฝ๋‹ˆ๋‹ค. -๋ ˆ๋ฒจ ๋ผ์šฐํŒ… ํƒœ๊ทธ ํƒœ๊ทธ. , ํŒŒ๊ดด๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ menu1-0 ๋ฐ menu1-1์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๋ผ์šฐํŒ….
{ path: '/nested', component: Layout, redirect: '/nested/menu1/menu1-1', name: 'Nested', meta: { title: 'Nested Routes', icon: 'nested' }, children: [ { path: 'menu1', component: () => import('@/views/nested/menu1/index'), // Parent router-view name: 'Menu1', meta: { title: 'Menu 1' }, redirect: '/nested/menu1/menu1-1', children: [ { path: 'menu1-0', component: () => import('@/views/nested/menu1/menu1-0'), name: 'Menu1-0', meta: { title: 'Menu 1-0', noCache: true } }, { path: 'menu1-1', component: () => import('@/views/nested/menu1/menu1-1'), name: 'Menu1-1', meta: { title: 'Menu 1-1' } }, { path: 'menu1-2', component: () => import('@/views/nested/menu1/menu1-2'), name: 'Menu1-2', redirect: '/nested/menu1/menu1-2/menu1-2-1', meta: { title: 'Menu 1-2' }, children: [ { path: 'menu1-2-1', component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'), name: 'Menu1-2-1', meta: { title: 'Menu 1-2-1' } }, { path: 'menu1-2-2', component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'), name: 'Menu1-2-2', meta: { title: 'Menu 1-2-2' } } ] }, { path: 'menu1-3', component: () => import('@/views/nested/menu1/menu1-3'), name: 'Menu1-3', meta: { title: 'Menu 1-3' } } ] } ] }

`Vue.mixin({
beforeR outeLeave:function (to, from, next){
if (from.meta.noCache) {
if (this.$vnode && this.$vnode.data.keepAlive) {
if (this.$vnode.parent && this.$vnode.parent.componentInstance && this.$vnode.parent.componentInstance.cache) {

      if (this.$vnode.componentOptions) {
        var key = this.$vnode.key == null
          ? this.$vnode.componentOptions.Ctor.cid + (this.$vnode.componentOptions.tag ? `::${this.$vnode.componentOptions.tag}` : '')
          : this.$vnode.key;
        var cache = this.$vnode.parent.componentInstance.cache;
        var keys = this.$vnode.parent.componentInstance.keys;
        if (cache[key]) {
          if (keys.length) {
            var index = keys.indexOf(key);
            if (index > -1) {
              keys.splice(index, 1);
            }
          }
          delete cache[key];
        }
      }
    }
    this.$destroy();
  }
}
next();

},
});`

์•„์ด๋””์–ด๋Š” ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.์•„์ด๋””์–ด์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.์บ์‹œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ œ๊ฑฐํ•˜๋Š” ์‹œ๊ธฐ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค์˜ ํŠน์ • ๊ตฌํ˜„์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

๋น„์ฆˆ๋‹ˆ์Šค ์ธก๋ฉด์—์„œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋งค์šฐ ์‹œ๋‚˜๋ฆฌ์˜ค์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
1. ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ–ˆ๊ณ  ์บ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2. ์ข…๋ฃŒํ•˜๋ ค๋ฉด ํด๋ฆญํ•˜์„ธ์š”. ๋ชจ๋“  ์บ์‹œ๋ฅผ ์ง€์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
3. ๋กœ๊ทธ์ธ ํ›„ ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ๋ฆฌ๋””๋ ‰์…˜ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€๋Š” ์บ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
4. ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๊ณ  ์ƒˆ ํŽ˜์ด์ง€๊ฐ€ ๊ณ„์† ์บ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ 2์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ๋ชจ๋“  ์บ์‹œ๋ฅผ ์ง€์šฐ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. vuex์— keep-alive์˜ ์ตœ๋Œ€ ๊ฐ’์„ ๋„ฃ๊ณ  1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. vue ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ๋”ฐ๋ผ ์บ์‹œ๋œ ํŽ˜์ด์ง€๊ฐ€ ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜์—๊ฒŒ ๋” ์ด์ƒํ•œ ๊ฒƒ์€ 3์—์„œ ๋‹ค๋ฅธ ๋น„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ ํ”„ํ•˜๋ฉด 1์—์„œ ์บ์‹œ๋œ ํŽ˜์ด์ง€์˜ ๋งˆ์šดํŠธ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๊ณ  ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ๋ณด๋ฉด ์ด ํŽ˜์ด์ง€๊ฐ€ ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ด, ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€ ๋กœ์ง์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜.
ํ•œ์ฐธ์„ ์ฐพ์•„๋„ ๋‚œ ์•„์ง๋„ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์–ด

๋น„์ฆˆ๋‹ˆ์Šค ์ธก๋ฉด์—์„œ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” ๋งค์šฐ ์‹œ๋‚˜๋ฆฌ์˜ค์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
1. ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ–ˆ๊ณ  ์บ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
2. ์ข…๋ฃŒํ•˜๋ ค๋ฉด ํด๋ฆญํ•˜์„ธ์š”. ๋ชจ๋“  ์บ์‹œ๋ฅผ ์ง€์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
3. ๋กœ๊ทธ์ธ ํ›„ ๋‹ค๋ฅธ ์˜ค๋ฅ˜ ๋ฆฌ๋””๋ ‰์…˜ ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€๋Š” ์บ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
4. ๋กœ๊ทธ์ธ์— ์„ฑ๊ณตํ•˜๊ณ  ์ƒˆ ํŽ˜์ด์ง€๊ฐ€ ๊ณ„์† ์บ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด์ œ 2์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ๋ชจ๋“  ์บ์‹œ๋ฅผ ์ง€์šฐ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. vuex์— keep-alive์˜ ์ตœ๋Œ€ ๊ฐ’์„ ๋„ฃ๊ณ  1๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์œ ํšจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. vue ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์— ๋”ฐ๋ผ ์บ์‹œ๋œ ํŽ˜์ด์ง€๊ฐ€ ์—ฌ์ „ํžˆ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚˜์—๊ฒŒ ๋” ์ด์ƒํ•œ ๊ฒƒ์€ 3์—์„œ ๋‹ค๋ฅธ ๋น„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ ํ”„ํ•˜๋ฉด 1์—์„œ ์บ์‹œ๋œ ํŽ˜์ด์ง€์˜ ๋งˆ์šดํŠธ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜๊ณ  ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ๋ณด๋ฉด ์ด ํŽ˜์ด์ง€๊ฐ€ ๋ชจ๋‘ ๋น„ํ™œ์„ฑํ™”๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ด, ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ํŽ˜์ด์ง€ ๋กœ์ง์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ๋ฌธ์ œ์˜.
ํ•œ์ฐธ์„ ์ฐพ์•„๋„ ๋‚œ ์•„์ง๋„ ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์–ด

๊ท€ํ•˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ 2์‹œ์— ํŽ˜์ด์ง€๋ฅผ ์ง์ ‘ ์ƒˆ๋กœ ๊ณ ์น˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๊ณ  ์ง์ ‘์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

Include๋Š” ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๊ฐ€ ํ•˜๋‚˜์˜ ๊ตฌ์„ฑ ์š”์†Œ์— ํ•ด๋‹นํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”? ๋™์ผํ•œ ๊ตฌ์„ฑ ์š”์†Œ์— ๋‹ค๋ฅธ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰