Promise란 서버에 데이터를 요청하여 받아오는 동작과 같은 비동기 로직 처리에 유용한 자바스크립트 라이브러리이다. 자바스크립트는 단일 스레드로 코드를 처리하기 때문에 특정 로직의 처리가 끝날 때까지 기다려 주지 않는다. 따라서 데이터를 요청하고 받아올 때까지 기다렸다가 화면에 나타나는 로직을 실행해야 할 때 주로 Promise를 활용한다. 그리고 데이터를 받아왔을 때, Promise로 데이터를 화면에 표시하거나 연산을 수행하는 등 특정 로직을 수행한다.
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
https://router.vuejs.org/kr
<script src= "https://cdn.jsdelivr.net/npm/vue/dist/vue.js></script>"
router01
<script>
// 라우트 컴포넌트
const Main = {
template: "<div>메인 페이지</div>",
};
const Board = {
template: "<div>자유 게시판</div>",
};
const QnA = {
template: "<div>질문 게시판</div>",
};
const Gallery = {
template: "<div>갤러리 게시판</div>",
};
// 라우터 객체 생성
const router = new VueRouter({
routes: [
{
path: "/",
component: Main,
},
{
path: "/board",
component: Board,
},
{
path: "/qna",
component: QnA,
},
{
path: "/gallery",
component: Gallery,
},
],
});
// Vue 인스턴트 라우터 주입
const app = new Vue({
el: "#app",
router,
});
</script>
<router-link>
는 <a>
태그로 렌더링.router02
, router03
참조.
router04
참조.<router-link>
를 사용하여 선언적 네비게이션용 anchor 태그를 만드는 것 외에도 라우터의 instance method를 사용하여 프로그래밍으로 수행.$router.push('home')
$router.push({ path: 'home'})
$router.push({ name: 'boardview', params: { no: 3}})
$router.push({ path: '/board', query: {pg: 1}})
router05
참조
router06
참조
const router = new VueRouter({
mode: 'history',
routes: [
...,
{
path: '/board',
name: 'board',
component: Board,
redirect: '/board/list', // or redirect: {name: 'list'}
children: [
...,
],
},
],
});