{"componentChunkName":"component---src-templates-blog-post-js","path":"/vue/vue-js-router-설치-및-설정/","result":{"data":{"site":{"siteMetadata":{"title":"Bottlehs Tech Blog","description":"웹·앱·AI 개발자 전병훈(bottlehs)의 기술 블로그. AI·LLM, JavaScript·Vue, Spring Boot, 알고리즘, 블록체인 실무 가이드를 다룹니다","siteUrl":"https://www.bottlehs.dev","author":{"name":"Jeon Byung Hun","summary":"개발을 즐기는 bottlehs - Engineer, MS, AI, FE, BE, OS, IOT, Blockchain, 설계, 테스트"},"social":{"github":"bottlehs","codepen":"bottlehs"}}},"markdownRemark":{"id":"54b9b591-b847-5925-90b1-7d14ae279406","excerpt":"Vue JS Router 설치 및 설정 라우팅(Routing) 네트워크에서 사용되는 용어로, 어떤 네트워크 안에서 통신 데이터를 보낼 최적 의 경로를 선택하는 과정을 뜻함 웹에서의 라우팅은 웹 페이지 간의 이동 방법을 뜻 한다. 예를 들면 아래와 같다. 예) 브라우저 URL…","html":"<p><img src=\"/assets/vue-logo.png\" alt=\"Vue JS Router 설치 및 설정\" title=\"Vue JS Router 설치 및 설정\"></p>\n<h2 id=\"라우팅routing\" style=\"position:relative;\"><a href=\"#%EB%9D%BC%EC%9A%B0%ED%8C%85routing\" aria-label=\"라우팅routing permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>라우팅(Routing)</h2>\n<p>네트워크에서 사용되는 용어로, 어떤 네트워크 안에서 통신 데이터를 보낼 최적 의 경로를 선택하는 과정을 뜻함</p>\n<p>웹에서의 라우팅은 웹 페이지 간의 이동 방법을 뜻 한다. 예를 들면 아래와 같다.</p>\n<p><strong>예)</strong></p>\n<ol>\n<li>브라우저 URL을 입력하면 해당 페이지로 이동 한다.</li>\n<li>링크를 클릭하면 해당 페이지로 이동 한다.</li>\n<li>뒤로가기를 누르면 히스토리의 이전 페이지로 이동 한다.</li>\n</ol>\n<h2 id=\"뷰-라우트vue-router\" style=\"position:relative;\"><a href=\"#%EB%B7%B0-%EB%9D%BC%EC%9A%B0%ED%8A%B8vue-router\" aria-label=\"뷰 라우트vue router permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>뷰 라우트(Vue Router)</h2>\n<ul>\n<li>Vue.js의 공식 라우트 이다.</li>\n<li>Vue.js 코어와 긴밀하게 연결되어 SPA를 쉽게 구축 할 수 있다.</li>\n<li>화면 간의 이동 시, 깜빡거림 없이 매끄럽게 전환 할수 있다. (HTML History API)</li>\n</ul>\n<h3 id=\"주요-기능\" style=\"position:relative;\"><a href=\"#%EC%A3%BC%EC%9A%94-%EA%B8%B0%EB%8A%A5\" aria-label=\"주요 기능 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>주요 기능</h3>\n<ul>\n<li>Nested route/view mapping</li>\n<li>Modular, component-based router con</li>\n<li>Route params, query, wildcards</li>\n<li>View transition effects powered by Vue.js transition system</li>\n<li>Fine-grained navigation control</li>\n<li>Links with automatic active CSS classes</li>\n<li>HTML5 history mode or hash mode, with auto-fallback in IE9</li>\n<li>Customizable Scroll Behavior</li>\n</ul>\n<h2 id=\"설치\" style=\"position:relative;\"><a href=\"#%EC%84%A4%EC%B9%98\" aria-label=\"설치 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>설치</h2>\n<p>Vue Router 는 프로젝트 생성시 기본 dependencies 로 추가 할수도 있고, npm or yarn 을 사용하여 필요에 따라 추가 할수 있다. 프로젝트 생성 이후 Vue Router 를 추가 하는 방법은 아래와 같다.</p>\n<p>터미널을 실행 한후 프로젝트 root 로 이동 해서 npm 으로 라이브러리를 추가 한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">npm install vue-router --save // dependencies\nnpm install vue-router --save-dev // devDependencies</code></pre></div>\n<p><img src=\"/assets/vue-js-npm-install-vue-router.png\" alt=\"Vue Js NPM Vue Router Install\" title=\"Vue Js NPM Vue Router Install\"></p>\n<p><img src=\"/assets/vue-js-npm-install-vue-router2.png\" alt=\"Vue Js NPM Vue Router Install\" title=\"Vue Js NPM Vue Router Install\"></p>\n<h3 id=\"npm-과-yarn\" style=\"position:relative;\"><a href=\"#npm-%EA%B3%BC-yarn\" aria-label=\"npm 과 yarn permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>NPM 과 YARN</h3>\n<p>npm 은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. yarn 또한 npm과 같이 js 패키지 매니저이다.</p>\n<h4 id=\"npm\" style=\"position:relative;\"><a href=\"#npm\" aria-label=\"npm permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>NPM</h4>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">// {패키지 관리자명} install {플러그인명} --save\nnpm install vue-router\nnpm install vue-router --save-dev</code></pre></div>\n<p>—save, —save-dev 는 플러그인이 dependencies 항목에 저장 되는지 아니면 devDependencies 에 저장 되는지를 선택 하는것이다. devDependencies 는 개발모드에서만 활용 되는 플러그인을 저장 한다.\n—save 는 기본값 이기 때문에 생략 가능하다.</p>\n<h3 id=\"yarn\" style=\"position:relative;\"><a href=\"#yarn\" aria-label=\"yarn permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>YARN</h3>\n<div class=\"gatsby-highlight\" data-language=\"text\"><pre class=\"language-text\"><code class=\"language-text\">// {패키지 관리자명} add {플러그인명}\nyarn add vue-router\nyarn add --dev vue-router</code></pre></div>\n<p>—dev 는 devDependencies 에 저장 한다.</p>\n<h2 id=\"구현\" style=\"position:relative;\"><a href=\"#%EA%B5%AC%ED%98%84\" aria-label=\"구현 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>구현</h2>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> Vue <span class=\"token keyword\">from</span> <span class=\"token string\">\"vue\"</span>\n<span class=\"token keyword\">import</span> VueRouter <span class=\"token keyword\">from</span> <span class=\"token string\">\"vue-router\"</span>\n<span class=\"token keyword\">import</span> Home <span class=\"token keyword\">from</span> <span class=\"token string\">\"../views/Home.vue\"</span>\n\nVue<span class=\"token punctuation\">.</span><span class=\"token function\">use</span><span class=\"token punctuation\">(</span>VueRouter<span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">const</span> routes <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">path</span><span class=\"token operator\">:</span> <span class=\"token string\">\"/\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Home\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">component</span><span class=\"token operator\">:</span> Home<span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">path</span><span class=\"token operator\">:</span> <span class=\"token string\">\"/about\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"About\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token function-variable function\">component</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token keyword\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"../views/About.vue\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">]</span>\n\n<span class=\"token keyword\">const</span> router <span class=\"token operator\">=</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">VueRouter</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n  <span class=\"token literal-property property\">mode</span><span class=\"token operator\">:</span> <span class=\"token string\">\"history\"</span><span class=\"token punctuation\">,</span>\n  <span class=\"token literal-property property\">base</span><span class=\"token operator\">:</span> process<span class=\"token punctuation\">.</span>env<span class=\"token punctuation\">.</span><span class=\"token constant\">BASE_URL</span><span class=\"token punctuation\">,</span>\n  routes<span class=\"token punctuation\">,</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> router</code></pre></div>\n<p>라우트를 초기화 한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> routes <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n  <span class=\"token operator\">...</span> code\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">path</span><span class=\"token operator\">:</span> <span class=\"token string\">\"{URL 경로}\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"{라우트명}\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token function-variable function\">component</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token keyword\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"{컴포넌트 경로}\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token operator\">...</span> code\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token operator\">&lt;</span>router<span class=\"token operator\">-</span>link to<span class=\"token operator\">=</span><span class=\"token string\">\"URL\"</span><span class=\"token operator\">></span></code></pre></div>\n<p>페이지 이동 태그, 화면에서는 <a> 로 렌더링되며, 클릭하면 to에 지정한 URL로 이동 된다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token operator\">&lt;</span>router<span class=\"token operator\">-</span>view<span class=\"token operator\">></span></code></pre></div>\n<p>페이지 표시 태그, 변경되는 URL에 따라 해당 컴포넌트를 화면에 그려지는 영역 이다.</p>\n<h3 id=\"구현-예시\" style=\"position:relative;\"><a href=\"#%EA%B5%AC%ED%98%84-%EC%98%88%EC%8B%9C\" aria-label=\"구현 예시 permalink\" class=\"anchor-header before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>구현 예시</h3>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"language-sh\"><code class=\"language-sh\">src\n├── components // 컴포넌트\n├── router // 라우팅\n│── views // 화면\n│   ├── About.vue // About 컴포넌트\n│   └── Home.vue // Home 컴포넌트\n│── main.js // 메인 <span class=\"token punctuation\">(</span>뷰인스턴스 초기화<span class=\"token punctuation\">)</span>\n└── App.vue // App 컴포넌트</code></pre></div>\n<p><strong>App.vue</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token operator\">&lt;</span>router<span class=\"token operator\">-</span>view<span class=\"token operator\">></span></code></pre></div>\n<p><strong>main.js</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">import</span> router</code></pre></div>\n<p><strong>router/index.js</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> routes <span class=\"token operator\">=</span> <span class=\"token punctuation\">[</span>\n  <span class=\"token operator\">...</span> code\n  <span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">path</span><span class=\"token operator\">:</span> <span class=\"token string\">\"{URL 경로}\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"{라우트명}\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token function-variable function\">component</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token keyword\">import</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"{컴포넌트 경로}\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token operator\">...</span> code\n<span class=\"token punctuation\">]</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p><strong>views/home</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>home<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n  <span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"Home\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">components</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p><strong>views/about</strong></p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>template</span><span class=\"token punctuation\">></span></span>\n  <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>about<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>template</span><span class=\"token punctuation\">></span></span>\n\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n  <span class=\"token keyword\">export</span> <span class=\"token keyword\">default</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">name</span><span class=\"token operator\">:</span> <span class=\"token string\">\"About\"</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">components</span><span class=\"token operator\">:</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p><img src=\"/assets/vue-js-vue-router-index.png\" alt=\"Vue Js Vue Router Demo\" title=\"Vue Js Vue Router Demo\"></p>","tableOfContents":"<ul>\n<li><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#%EB%9D%BC%EC%9A%B0%ED%8C%85routing\">라우팅(Routing)</a></li>\n<li>\n<p><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#%EB%B7%B0-%EB%9D%BC%EC%9A%B0%ED%8A%B8vue-router\">뷰 라우트(Vue Router)</a></p>\n<ul>\n<li><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#%EC%A3%BC%EC%9A%94-%EA%B8%B0%EB%8A%A5\">주요 기능</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#%EC%84%A4%EC%B9%98\">설치</a></p>\n<ul>\n<li>\n<p><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#npm-%EA%B3%BC-yarn\">NPM 과 YARN</a></p>\n<ul>\n<li><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#npm\">NPM</a></li>\n</ul>\n</li>\n<li><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#yarn\">YARN</a></li>\n</ul>\n</li>\n<li>\n<p><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#%EA%B5%AC%ED%98%84\">구현</a></p>\n<ul>\n<li><a href=\"/vue/vue-js-router-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC%A0%95/#%EA%B5%AC%ED%98%84-%EC%98%88%EC%8B%9C\">구현 예시</a></li>\n</ul>\n</li>\n</ul>","wordCount":{"words":289},"fields":{"slug":"/vue/vue-js-router-설치-및-설정/","image":"/assets/vue-logo.png","faq":[]},"frontmatter":{"title":"Vue JS Router 설치 및 설정","date":"2021년 4월 4일","dateISO":"2021-04-04T10:11:34.709Z","updatedISO":null,"category":"vue","description":"웹에서의 라우팅은 웹 페이지 간의 이동 방법을 뜻 한다. 예를 들면 아래와 같다. Vue.js의 공식 라우트 이고, Vue.js 코어와 긴밀하게 연결되어 SPA를 쉽게 구축 할 수 있다. 그리고 화면 간의 이동 시, 깜빡거림 없이 매끄럽게 전환 할수 있다. (HTML History API)","tags":["vue","javascript","framework","frontend","web","router"]}}},"pageContext":{"slug":"/vue/vue-js-router-설치-및-설정/","previous":{"fields":{"slug":"/springboot/스프링-부트-swagger-api-문서-자동화/"},"frontmatter":{"title":"스프링 부트 Swagger API 문서 자동화","tags":["스프링","스프링부트","Spring","SpringBoot","Java","프레임워크","Swagger"]}},"next":{"fields":{"slug":"/vue/vue-js-중첩-라우트/"},"frontmatter":{"title":"Vue Js 뷰 중첩 라우트","tags":["vue","javascript","framework","frontend","web","router","nested-routes"]}}}},"staticQueryHashes":["213619243","3262363727"]}