Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Top-down
- binarysearch
- 소프트스퀘어드
- 퀵 정렬 # quciksort # 정렬
- EOF
- 알고리즘
- 다이나믹프로그래밍
- MySQL
- hasNext
- 작동순서
- 이것이 취업을 위한 코딩 테스트다
- greedy
- ERD Tool
- charAt
- 탐색
- 플로이드워셜
- DynamicProgramming
- 순차탐색
- binary_search
- 백준
- quickDBD
- 보텀업
- 그리디
- Python
- Algorithm
- 관계형 데이터베이스
- java
- ERD 설계
- 라이징캠프
- 탑다운
Archives
- Today
- Total
Seok_In
0510 Vue.js Router 적용하기 본문
1. 프로젝트에 cdn 추가
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/vue-router@3.5.3/dist/vue-router.js"></script>
2. index.html 을 router를 이용하여 수정
- 연결부분 router-link 이용
- 보여주는 부분 router view 이용
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>영화관리</title>
<link rel="stylesheet" href="./css/main.css">
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/vue-router@3.5.3/dist/vue-router.js"></script> <
</head>
<body>
<div id="app">
<header>
<nav class="header-nav">
<div>
<a href="index.html" class = "logo">영화관리</a>
</div>
<div>
<router-link :to="{name:'create'}">영화등록</router-link>
</div>
<div>
<router-link :to="{name:'list'}">영화목록</router-link>
</div>
</header>
<router-view></router-view>
<script type="module" src="App.js"></script>
</body>
</html>
3. App.js 만들어주기
import Main from './components/main.js';
import Create from './components/create.js';
import List from './components/list.js';
const router = new VueRouter({
routes:[
{
path: '/',
name: 'main',
component: Main
},
{
path: '/create',
name: 'create',
component: Create
},
{
path: '/list',
name: 'list',
component: List
},
],
});
new Vue({
el: "#app",
router,
});
4. create.js 만들기
export default {
template: `
<div class ="container">
<h2>영화등록</h2>
<fieldset class="text-center">
<label for="title">제목</label>
<input type="text" id="title" v-model="title" class="view"><br/>
<label for="maker">감독</label>
<input type="text" id="maker" v-model="maker" class="view"><br/>
<label for="genre">장르</label>
<input type="text" id="genre" v-model="genre" class="view"><br/>
<label for="time">상영시간</label>
<input type="text" id="time" v-model="time" class="view"><br/>
</fieldset>
<button class="btn">영화 등록</button>
</div>
</div>`,
data() {
return {
title: "",
maker: "",
genre: "",
time: 0,
};
},
};
5. main.js 만들기
export default {
template: `
<div class ="container">
<div class="text-center">
<div>
<img src="./img/ssafy_logo.png" alt="SSAFYLOGO">
<h2>{{ message }}</h2>
</div>
<div>
<input type="text" class="view" v-model="search" placeholder="영화 제목을 입력하세요:">
<button class="btn">검색</button>
</div>
<hr>
<h3>검색결과</h3>
<div v-if="movies.length"></div>
<div v-else>검색결과 없음</div>
</div>`,
data() {
return {
message: "영화정보 관리 사이트 입니다.",
search: "",
movies: [],
};
},
};
6. list.js 만들기
- created() 이용
export default {
template: `
<div class="contatiner">
<h2>영화 목록</h2>
<div v-if="movies.length">
<table class="movie-list">
<thead>
<tr>
<th>인덱스</th>
<th>제목</th>
<th>평점</th>
<th>장르</th>
<th>상영시간</th>
</tr>
</thead>
<tbody>
<tr v-for="(movie, index) in movies" :key="index">
<td>{{ index+1 }}</td>
<td>{{ movie.title }}</td>
<td>{{ movie.rating }}</td>
<td>{{ movie.genres }}</td>
<td>{{ movie.runtime }}</td>
</tr>
</tbody>
</table>
</div>
<div v-else>등록된 영화가 없습니다.</div>
</div>`,
data() {
return {
movies: [],
};
},
created() {
axios.get("https://yts.mx/api/v2/list_movies.json").then((promise) => {
console.log(promise);
this.movies = promise.data.data.movies;
});
},
};
'FrontEnd' 카테고리의 다른 글
VUE 로 프로젝트 만들기 (0) | 2022.05.18 |
---|---|
VUE.js - State 간접접근 (0) | 2022.05.18 |
Vue CLI로 Board 만들기 (0) | 2022.05.17 |
AWS EC2 연동하기 (0) | 2022.05.13 |
0509 VUE.JS (0) | 2022.05.10 |