Vue-router์ Django
Vue.js์์ vue-router
๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก URL์ # ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
ํด์๋ฅผ ์ ๊ฑฐํ๊ธฐ ์ํด์๋ ํ์คํ ๋ฆฌ ๋ชจ๋๋ฅผ ์ ์ฉํด์ผ ํ๋๋ฐ Django๋ฅผ ๋ฐฑ์๋ ์๋ฒ๋ก ๋๊ณ ๊ทธ๋๋ก ์ฌ์ฉํ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์๊น๋๋ค.
๐ก ๋ฌธ์ ์
๋ง์ฝ Vue.js์์ ํ์คํ ๋ฆฌ ๋ชจ๋๋ฅผ ์ ์ฉํ ํ npm build
๋ฅผ ํตํด ์์ฑํ ๋น๋ ํ์ผ์
Django์ index.html
๋ก ์ค์ ํ ๋ค์ ์ง์ URL๋ก ํน์ ํ์ด์ง๋ฅผ ์์ฒญํ ๊ฒฝ์ฐ 404 ์๋ฌ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ด๋ Vue.js๊ฐ SPA(Single Page Application)์ด๋ผ์ Django ์๋ฒ๋ ํด๋ผ์ด์ธํธ์์ ์ฌ์ฉํ๋ ํน์ URL ํจํด์ ์ ์ ์๋ ์ํฉ์์ ๋ฒ์ด์ง ์ผ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด Django์์ ํ์คํ ๋ฆฌ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํด์ผํ ๊น์?
Django์์ History mode ์ง์์ ์ํ ์์
Django์์ ํ์คํ ๋ฆฌ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ฝ๊ฐ์ ํธ๋ฆญ์ ์ด์ฉํด์ผํฉ๋๋ค.
๋ค์๊ณผ ๊ฐ์ด urls.py
์์ ๊ฐ์ฅ ๋ง์ง๋ง url ํจํด์ ์ ๊ทํํ์์ ํ์ฉํด ์ถ๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ด๋ ๊ฒ ํ๋ฉด ๋งค์นญ๋์ง ๋ชปํ URL์ ๋ค์ SPA ๋ด์์ ์ํ๋ ํ์ด์ง๋ฅผ ์ฐพ์ ์ ์๊ฒ ๋๋ ๊ฒ์ด์ฃ .
config/urls.py
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.generic import TemplateView
urlpatterns = [
path('', TemplateView.as_view(template_name='index.html')),
path('admin/', admin.site.urls),
# shopping app urls
path('shopping/', include('shopping.urls')),
# ... rest of your urls
]
# history mode ์ง์
urlpatterns += [
re_path('^.*$', TemplateView.as_view(template_name='index.html')),
]
์ฐธ๊ณ ์๋ฃ
'๐ archive' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Vue.js ํด๋์ค์ ์คํ์ผ ๋ฐ์ธ๋ฉ ์ ์ฉํ๊ธฐ (1) | 2021.03.02 |
---|---|
Vue.js ์์ ๋ฐ์ํ(Reactivity)์ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ (0) | 2021.03.02 |
Vue-router ๋ค๋น๊ฒ์ด์ ๊ฐ๋ ํ์ฉํ๊ธฐ (0) | 2021.03.01 |
Vue.js์ Vuetify ํ์ฉํด์ axios๋ก ํ์ผ ์ ๋ก๋ํ๊ธฐ (0) | 2021.03.01 |
Vue.js ์ค์ฒฉ ๋ผ์ฐํฐ (Nested Router) ์ฌ์ฉํ๊ธฐ (0) | 2021.03.01 |
๐ฌ ๋๊ธ