728x90
๋ฐ์ํ
๐ก ์ค์ต ํฌ์ธํธ!
๐ Blog ํ๋ก์ ํธ ์์ฑํ๊ธฐ
- vue-router ๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ํด Blog ํ๋ก์ ํธ๋ฅผ ์๋ก ๋ง๋ค์ด์ฃผ์๋ค.
- Vue ์ค์น ๋ฐ ํ๋ก์ ํธ ์์ฑ, ๊ฐ๋ฐํ๊ฒฝ ์
ํ
๋ฐฉ๋ฒ์ ์ด์ ์ ํฌ์คํ
ํ ์ ์ด ์์ผ๋ฏ๋ก ์ด ํฌ์คํ
์์๋ ์ค๋ช
ํ์ง ์๋๋ค.
(Vue ์ค์น ๋ฐ ํ๋ก์ ํธ ์์ฑ, ๊ฐ๋ฐํ๊ฒฝ ์ ํ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ ํด๋ฆญ!)
๐ Bootstrap ์ค์นํ๊ธฐ
- ์ด๋ฒ์๋ vue ์์ Bootstrap ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด๋ณด์๋ค.
- Bootstrap ์ ์นํ์ด์ง์ ํ์ํ ๋ฒํผ, ๋ฉ๋ด, ์นด๋, ๋ฆฌ์คํธ ๋ฑ์ ๋ ์ด์์์ ์ฝ๊ฒ ์ฝ๋๋ฅผ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐํ๋ ๋ฐฉ์์ผ๋ก ๋ง๋ค ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
- Bootstrap ์ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
- css.js ํ์ผ์ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐํ์ฌ ์ค์นํ๊ธฐ
- ํฐ๋ฏธ๋์์ npm ์ ์ด์ฉํ์ฌ ์ค์นํ๊ธฐ
- BootstrapVue ๋ฅผ ์ค์นํ๊ธฐ (Vue 2 ๋ฒ์ ๋ง ํธํ๋๋ ์ ์ฐธ๊ณ !)
๐ค css.js ํ์ผ์ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐํ์ฌ Bootstrap ์ค์นํ๊ธฐ
- Bootstrap ์ด๋ผ๊ณ ๊ตฌ๊ธ์ ๊ฒ์ํ๋ฉด ์์ ๊ฐ์ด ์ฌ์ดํธ๊ฐ ํ๋ ๋์จ๋ค.
- ๊ท์ฐฎ์ผ๋ฉด ์ ๋งํฌ ํด๋ฆญํด์ ๋ค์ด๊ฐ์..ใ ใ
- Get started ๋ฒํผ์ ํด๋ฆญํด์ค๋ค.
- ์ด์ ์์ ๊ฐ์ด ํ๋ฉด์ด ๋ณด์ด๋ฉด ์ฐ์ธก ์๋จ์์ Bootstrap ๋ฒ์ ์ ์ ํํด์ค ๋ค์, ์์ ํ์ํ CSS, JS ๋ ๊ณณ์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ฌ index.html ์ ๊ทธ๋๋ก ๋ถ์ฌ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
<!DOCTYPE html>
<html lang="">
<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">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
</body>
</html>
- ๋๋ ์์ ๊ฐ์ด CSS ์ฝ๋๋ <head></head> ์, JS ์ฝ๋๋ <body></body> ์ ๋ฃ์ด์ฃผ์๋ค.
- JS ์ฝ๋๋ </body> ๋ฐ๋ก ์์ ์ ์ด์ฃผ๋ ๊ฒ์ด ์ข๋ค.
๐ค ํฐ๋ฏธ๋์์ npm ์ ์ด์ฉํ์ฌ Bootstrap ์ค์นํ๊ธฐ
- npm ์ผ๋ก Bootstrap ์ ์ค์นํ ๊ฑฐ๋ฉด ๋จผ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ํ, ์์ฑ๋ ํ๋ก์ ํธ ํด๋๋ฅผ VSCode ์๋ํฐ๋ก ์ด์ด์ค ํ ์งํํด์ผ ํ๋ค.
- ํน์, ํฐ๋ฏธ๋์์ npm run serve ๋ฅผ ์ ๋ ฅํ์ฌ ํ๋ก์ธ์ค๋ฅผ ์ผ๋ ๊ฒ ์๋ค๋ฉด, ๊ทธ ์ํ์์ Bootstrap ์ค์น์ ์ ๋๋ก ์ค์น๊ฐ ์ ๋ ์ ์์ผ๋ฏ๋ก ๋ฐ๋์ ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ ํ์ Bootstrap ์ค์น๋ฅผ ์งํํ์.
// Bootstrap 5 ๋ฒ์ ์ค์นํ๋ ๊ฒฝ์ฐ
npm install bootstrap
// Bootstrap 4 ๋ฒ์ ์ค์นํ๋ ๊ฒฝ์ฐ
npm install bootstrap@4 jquery popper.js
- ์ ์ฝ๋ ์ค ํ๋๋ฅผ ์ ํํ์ฌ ํฐ๋ฏธ๋์ ์ ๋ ฅํ๋ฉด ์ค์น๊ฐ ์งํ๋๋ค.
- ์ฐธ๊ณ ๋ก yarn ์ ์ฌ์ฉํ๊ณ ์ถ๋ค๋ฉด npm install ๋์ ์ yarn add ๋ผ๊ณ ์ ๋ ฅํ๋ฉด ๋๋ค.
- ์ค์น ๋ช ๋ น์ด๋ ์ธ์ ๋ ์์ ๋ ์ ์์ผ๋ฏ๋ก Bootstrap ํํ์ด์ง์์ ๋จผ์ ํ์ธํ๋ ๊ฒ ์ข๋ค.
import 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css'
- ์ด์ main.js ํ์ผ์ ๋งจ ๋ง์ง๋ง์ค๋ณด๋ค ์๋จ์ ์ ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
๐ Bootstrap ์ฌ์ฉํ๊ธฐ
- Bootstrap ํํ์ด์ง์ ์ ์ํ์ฌ ์ํ๋ UI ๋ฅผ ๊ฒ์ํ๋ค.
- button, navbar, card ๋ฑ์ ๊ฒ์ํ๋ฉด html ์ํ ์ฝ๋๊ฐ ๋์ค๋๋ฐ, ์ด๊ฑธ ๋ณต์ฌํ์ฌ ๋ด ํ๋ก์ ํธ์ ์ํ๋ ์์น์ ๋ถ์ฌ๋ฃ์ด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
728x90
๋ฐ์ํ
'[๊ฐ๋ฐ] Practice > Vue.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Vue.js] vue-router ์ค์น ํ ๋ผ์ฐํ ํ๊ธฐ (0) | 2022.04.05 |
---|---|
[Vue.js] ๋ฐ์ดํฐ๋ฐ์ธ๋ฉ์ ํตํด ๋ธ๋ก๊ทธ ๊ธ๋ชฉ๋ก ๋ง๋ค๊ธฐ (0) | 2022.04.05 |
[Vue.js] Vue ์ ๋ผ์ดํ์ฌ์ดํด ํ์ฉํ๊ธฐ (0) | 2022.04.04 |
[Vue.js] ๋ฐ์ดํฐ ์๋ณธ ๋ณด์กด์ ํ์์ฑ ์ดํดํ๊ธฐ ๋ฐ ์ํ ์ ๋ ฌ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (0) | 2022.04.04 |
[Vue.js] Vue ์์ UI ์ ๋๋ฉ์ด์ ํจ๊ณผ ์ฃผ๊ธฐ (0) | 2022.04.03 |