일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웅진씽크빅
- 내일배움카드인강
- 개발
- K디지털기초역량훈련
- ios
- 앱개발
- Flutter
- 러닝핏
- 내일배움카드사용처
- 플러터
- 인사이드아웃
- 국비코딩
- IT개발캠프
- 러닝핏인강
- 러닝핏습관챌린지
- 국비지원코딩
- 국비지원파이썬
- K디지털크레딧
- 스나이퍼팩토리
- 유데미
- 개발자부트캠프
- 내일배움투어
- 안드로이드
- 코딩국비지원
- 웹개발
- 고용노동부국비지원
- 부트캠프
- Udemy
- 0원코딩인강
- 습관챌린지
- Today
- Total
매일 땡기는 마라 코딩
[애플코딩] 인스타그램을 만들며 배워보는 Vue.js 3 완벽 가이드 (3) 본문
인스타그램을 만들며 배워보는 Vue.js 3 완벽 가이드
인스타그램을 만들며 배워보는 Vue.js 3 완벽 가이드 - 코딩애플 온라인 강좌
Next.js는 프론트엔드부터 서버까지 만들 수 있는 React기반 프레임워크입니다. 다른거 필요없이 이것만 사용해도 풀스택 웹개발이 가능합니다. Next.js 사용시 서버사이드 렌더링이 쉽기 때
codingapple.com
Vue 16강 : bootstrap
작업용 폴더를 에디터에서 오픈하여 blog 프로젝트 생성 후, 에디터로 bolg 폴더 오픈.
이제 UI를 만들어야 하는데, Bootstrap을 사용하면 CSS를 작성하지 않아도 UI를 만들 수 있다.
Bootstrap은 사이트에서도 다운 가능하고, npm으로도 설치가 가능하다. npm 설치 시 다음 코드를 입력한다.
npm install bootstrap@5
설치 후 main.js 세 번째 줄 즈음에 다음 코드를 추가해 준다.
main.js
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
설치가 완료됐으면 해당 사이트에서 원하는 UI를 검색해 코드를 복사해 오면 된다.
Bootstrap
Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins.
getbootstrap.com
Vue 17강 : blog data binding
router는 페이지를 나눌 때 사용한다. router를 학습하기 위해 components 폴더 안에 List.vue 페이지를 만들어 준다.
List.vue
<template>
<div>
<h5>블로그 글 제목</h5>
<p>블로그 글 날짜</p>
</div>
<div>
<h5>블로그 글 제목</h5>
<p>블로그 글 날짜</p>
</div>
<div>
<h5>블로그 글 제목</h5>
<p>블로그 글 날짜</p>
</div>
</template>
<script>
export default {
name: 'LIST',
}
</script>
<style>
</style>
컴포넌트 등록도 해 준다.
List.vue
<template>
<List />
</template>
<script>
import List from './components/List.vue';
export default {
name: 'App',
components: {
List : List,
}
}
</script>
<style>
</style>
데이터 보관을 위해 assets 폴더에 blog.js 폴더를 만들어 주고 연결해 준다.
blog.js
export default[{
title : '첫 째 프로젝트 : 허위매물 전문 부동산 앱',
content : 'Vue를 이용하면 비누같이 매끈한 앱을 만들 수 있습니다',
date : 'September 24, 2021',
number : 0
},{
title : '둘 째 프로젝트 : 오마카세 배달 앱',
content : '음식이 아니라 셰프를 직접 배달해드립니다',
date : 'October 20, 2020',
number : 1
},{
title : '셋 째 프로젝트 : 현피 앱',
content : '거리를 설정하면 가장 가까운 파이터를 소개해드려요! 서로 싸워보세요',
date : 'April 24, 2019',
number : 2
}]
App.vue
//script
import data from './assets/blog.js';
//script-default
data(){
return {
data : data,
}
},
가져온 데이터 List.vue로 전송해 데이터바인딩해 준다.
App.vue
//template
<List :data="data"/>
List.vue
//template
<div>
<h5>{{ data[0].title }}</h5>
<p>{{ data[0].date }}</p>
</div>
<div>
<h5>{{ data[1].title }}</h5>
<p>{{ data[1].date }}</p>
</div>
<div>
<h5>{{ data[2].title }}</h5>
<p>{{ data[2].date }}</p>
</div>
//script-defalt
props : {
data : Array,
}
Vue 18강 : vue-router
페이지를 나누기 위해 router 라이브러리를 터미널로 설치한다.
npm install vue-router@4
src 폴더에 router.js 파일을 만들고 코드를 복사해 넣는다.
router.js
import { createWebHistory, createRouter } from "vue-router";
import List from './components/List.vue'
const routes = [
{
path: "/list",
component: List,
},
];
const router = createRouter({
history: createWebHistory(),
routes,
});
export default router;
main.js와 App.vue에서 라우터 사용 셋팅을 한다.
main.js
import Router from './router.js'
createApp(App).use.apply(Router).mount('#app')
App.vue
<template>
<!-- 라우터 -->
<router-view></router-view>
</template>
<script>
import data from './assets/blog.js';
export default {
name: 'App',
data(){
return {
data : data,
}
},
components: {
}
}
</script>
<style>
</style>
이거 코드 안 됨
componets에 Home.vue 페이지를 만든다.
Home.vue
<template>
<div class="container mt-4">
<h5>React 개발자의 블로그입니다</h5>
<p>- Vue로 만들었음 -</p>
</div>
</template>
<script>
export default {
name : 'HOME',
}
</script>
<style>
</style>
</script>
<style>
</style>
router.js
import Home from './components/Home.vue'
//routes
{
path: "/home",
component: Home,
},
페이지 이동 링크를 만들고 싶으면 해당 코드를 작성하면 된다.
App.vue
//template
<router-link to="/list">홈페이지</router-link>
<router-link to="/list">리스트페이지</router-link>
※ 부트스트랩에서 네비 코드 가져옴
App.vue
//template
<nav class="navbar navbar-expand-lg bg-body-tertiary">
<div class="container-fluid">
<a class="navbar-brand" href="#">Navbar</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Features</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Pricing</a>
</li>
<li class="nav-item">
<a class="nav-link disabled">Disabled</a>
</li>
</ul>
</div>
</div>
</nav>
과제
Detail.vue 만들기
Detail.vue
<template>
<div>
<h4>상세페이지</h4>
<h5>글제목</h5>
<p>글설명</p>
</div>
</template>
<script>
export default {
name: 'DETAIL'
}
</script>
<style>
</style>
router.js
import Detail from './components/Detail.vue';
//routes
{
path: "/detail",
component: Detail,
},
Vue 19강 : route params
Vue 20강 : nested routes / push
Vue 기능들
Vue 사이트 build & Github Pages 배포
'클론코딩' 카테고리의 다른 글
[애플코딩] 인스타그램을 만들며 배워보는 Vue.js 3 완벽 가이드 (2) (0) | 2023.03.06 |
---|---|
[애플코딩] 인스타그램을 만들며 배워보는 Vue.js 3 완벽 가이드 (1) (0) | 2023.03.01 |
[인프런] 맛집지도 만들기 (11) (0) | 2023.02.10 |
[인프런] 맛집지도 만들기 (10) (0) | 2023.02.09 |
[인프런] 맛집지도 만들기 (9) (0) | 2023.02.09 |