Angular 2์์ ๋์จ ๊ธฐ๋ฅ ์ค ์ ๊ฐ ์ ๋ง ๊ทธ๋ฆฌ์ํ๋ ๊ธฐ๋ฅ ์ค ํ๋๋ ๋ชจ๋์ ์ฌ์ฉํ์ฌ ์ฝ๋ ๊ธฐ๋ฐ์ ๋ ผ๋ฆฌ ๋จ์๋ก ๋๋๋ ๊ฒ์ ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ์๋๋ฅผ ๋ผ์ฐํฐ ๊ตฌ์ฑ ์์๋ก ์ ๊ณตํ์ฌ Vue์์ ์ฌ์ ํ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค.
import Vue from 'vue';
import { routes } from './routes';
export const LazyModule: Vue.ComponentOptions<Vue> = {
render: r => {
console.log('rendering');
return r('router-view');
},
created: function() {
this.$router.addRoutes(routes);
}
};
์ด๊ฒ์ ์๋ํ์ง๋ง Vue ๊ตฌ์ฑ ์์์ ๋ชจ๋์ด ๋ฌด์์ธ์ง ๋ช ํํ๊ฒ ๊ตฌ๋ถํ๋ฉด ๋ ์ง๊ด์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ํนํ ๋ชจ๋์ ๋ ๋๋ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์์ต๋๋ค.
์ด ๋ชฉ์ ์ ์ํด ์ฌ๊ธฐ ์์ ๋ช ๊ฐ์ง ์ข์ ์์ ์ด ์ฌ๊ธฐ ์์ ํ ์คํธ
๊ถ๊ทน์ ์ผ๋ก Vue์์ ๋ช ๊ฐ์ง ๊ธฐ๋ณธ ์ง์์ ๊ธฐ๋ํ๊ณ Vue Router์ Vuex์์ ์ด๋ฅผ ํ์ฅํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
@patrickhousley , ์๋ ํ์ธ์, ์ ๋ Angular 2์ ๋ํ ๊ฒฝํ์ด ์์ต๋๋ค. ์ ํํ ๋ชจ๋์ด ๋ฌด์์ด๋ฉฐ ์ด์ ๋ํ ์ฌ์ฉ ์ฌ๋ก๊ฐ ๋ฌด์์ธ์ง ์ค๋ช ํด ์ฃผ์๊ฒ ์ต๋๊น?
IMO๋ Vue/React์ ๊ฐ์ ํ๋ ์์ํฌ์์ (๊ฑฐ์) ๋ชจ๋ ๊ฒ์ Component
๋ฐฉ์์ผ๋ก ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ผ์ Module
๋ณด๋ค๋ ๊ตฌ์ฑ ์์๋ฅผ ํฉ์ฑํ๋ ๊ฒ์ ์ ํธํฉ๋๋ค.
@jkzing ์ข ๋ ์ดํด ์ฌ๊ธฐ์์ ์ฒ๋ฆฌ๋ ์ ์๋ค๊ณ ์๊ฐ
@patrickhousley , ๋ค์์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
Vue ๋น๋๊ธฐ ๊ตฌ์ฑ ์์
Vue-router ์ง์ฐ ๋ก๋ฉ
Vuex ๋น๋๊ธฐ ๋ชจ๋ (์์ง ๋ณํฉ๋์ง ์์)
ssr ๋ฐ pwa ๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ํธ๋ฆฌํ ์ฝ๋ ๋ถํ ๋ฉ์ปค๋์ฆ๊ณผ ๊ณ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค. ๋ง์ ๊ฒ์ ์๊ณ ์์ง๋ง ์ฐ์ต์ ํ๋ฉด ์ ๋ง ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@patrickhousley , ๋ค์์ ์ดํด๋ณผ ์ ์์ต๋๋ค.
Vue ๋น๋๊ธฐ ๊ตฌ์ฑ ์์
Vue-router ์ง์ฐ ๋ก๋ฉ
Vuex ๋น๋๊ธฐ ๋ชจ๋ (์์ง ๋ณํฉ๋์ง ์์)
ssr ๋ฐ pwa ๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค์ฐ ํธ๋ฆฌํ ์ฝ๋ ๋ถํ ๋ฉ์ปค๋์ฆ๊ณผ ๊ณ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค. ๋ง์ ๊ฒ์ ์๊ณ ์์ง๋ง ์ฐ์ต์ ํ๋ฉด ์ ๋ง ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.