๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ก์›น ํ”„๋กœ์ ํŠธ/(ํ”„๋ก ํŠธ์—”๋“œ) ๋งˆ์ผ“์ปฌ๋ฆฌ - ํด๋ก ์ฝ”๋”ฉ

(8)
์ œํ’ˆ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ฒ€์ƒ‰์ฐฝ์„ ์•„๋ž˜ ๋‘ ๊ณณ์— ๋‘์—ˆ๋‹ค. nav์—์„œ ๊ฒ€์ƒ‰ SearchPage์—์„œ ๊ฒ€์ƒ‰ 1. nav ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ nav์— ์žˆ๋Š” ๊ฒ€์ƒ‰์ฐฝ์— keyword ์ž…๋ ฅ(ํ•„์ˆ˜) ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ search/keyword๋กœ ์ด๋™ํ•˜๊ณ  ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ 2. SearchPage ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ฒ€์ƒ‰ ํŽ˜์ด์ง€์— ์žˆ๋Š” ๊ฒ€์ƒ‰์ฐฝ์— keyword ์ž…๋ ฅ(ํ•„์ˆ˜) (๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ ์ „) result ํ™”๋ฉด ์ˆจ๊ธฐ๊ธฐ (๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ) search/keyword๋กœ ์ด๋™ํ•˜๊ณ  ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์ถœ๋ ฅ 2-1) (์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ) SeachPage.vue ๊ฒ€์ƒ‰์กฐ๊ฑด {{keyword}} //nav.vue์—์„œ ๋ผ์šฐํ„ฐ๋ฅผ ์ด์šฉํ•ด ๋ณด๋‚ธ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ ๋ฐ›์Œ ๊ฒ€์ƒ‰ //ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์— ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์•„์ง ๊ฒ€์ƒ‰์–ด๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. 2-2) (ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ) SearchResult...
์ฃผ์†Œ ์ž…๋ ฅ ๊ตฌํ˜„(daum ์ฃผ์†Œ api) ๊ณต์‹ API ํ™ˆํŽ˜์ด์ง€> http://postcode.map.daum.net/guide 1. script์— postcode ์ถ”๊ฐ€ index.html์— ์•„๋ž˜์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ 2. ์ฃผ์†Œ ๊ฒ€์ƒ‰ ๋ฒ„ํŠผ ๊ตฌํ˜„ (pages/ShopBasketPage.vue) ์ฃผ์†Œ ์ž…๋ ฅ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, showApi() ์‹คํ–‰ api์—์„œ ์ฃผ์†Œ ์„ ํƒํ•˜๋ฉด ์ƒ์„ธ ์ฃผ์†Œ ์ž…๋ ฅ ๋ชจ๋‹ฌ ์ฐฝ ๋‚˜ํƒ€๋‚ด๊ธฐ ์ƒ์„ธ ์ฃผ์†Œ ์ž…๋ ฅ ํผ์—์„œ ์ €์žฅ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ, setAddress() ์‹คํ–‰ 2-1) ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ ๋ฐฐ์†ก์ง€ ์ฃผ์†Œ ๊ฒ€์ƒ‰ {{ addr.addr1 }} ๋ฆฌ์…‹ ์ €์žฅ 2-2) ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ 3. ์ž…๋ ฅํ•œ ์ฃผ์†Œ vuex์— ์ €์žฅ (store/index.js) export const store = new Vuex.Store({ state: { //ordersheet ์Šคํ…Œ์ดํŠธ..
vuex ์ƒํ’ˆ๋ณ„ ๋ฆฌ๋ทฐ ๋ทฐ์–ด 1. ์ƒํ’ˆ๋ณ„ ๋ฆฌ๋ทฐ ๋ทฐ์–ด ๊ตฌํ˜„ 1) ์Šคํ† ์–ด์— reviews state ์ถ”๊ฐ€(store/index.js) state: { products: [ { id: 0, title: "๊ฐ•์•„์ง€ ์‚ฌ๋ฃŒ", }, { id: 1, title: "๊ณ ์–‘์ด ์‚ฌ๋ฃŒ", }, }, // reviews ์Šคํ…Œ์ดํŠธ ์ถ”๊ฐ€ reviews: [ { productId: 0, reviewId : 0, reviewtitle: "๊ฒฌ์™ˆ : ์ข‹์•„์š”!", reviewer: "์กฐ", reviewedate: "21.07.19", }, { productId: 0, reviewId : 1, reviewtitle: "๊ฐœ๊ฐ€ ์‹ซ์–ดํ•ด์š”.", reviewer: "๊น€", reviewedate: "21.07.19", }, { productId: 1, reviewId : 2, re..
vuex ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ตฌํ˜„ ์ฐธ๊ณ ํ•œ ๊ฒŒ์‹œ๋ฌผ > https://xn--xy1bk56a.run/vuex/3-cart/#%EC%95%A1%EC%85%98-%EC%B6%94%EA%B0%80 1. ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ** ์ปดํฌ๋„ŒํŠธ ํด๋” ๊ตฌ์กฐ ** Vuex (store/index.js) ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ ๋ฒ„ํŠผ๊ณผ ๋ฉ”์„œ๋“œ (ProductPage.vue) ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ทฐ (AddedProductList.vue) ** ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ ๋ฒ„ํŠผ ๊ธฐ๋Šฅ ** '+ ๋ฒ„ํŠผ' ํด๋ฆญ์‹œ '- ๋ฒ„ํŠผ' ํด๋ฆญ์‹œ product์˜ inventory -1 cartItem์˜ quantity +1 cartItem์˜ itemtotalprice + ์ƒํ’ˆ๊ฐ€๊ฒฉ product์˜ inventory +1 cartItem์˜ quantity -1 cartItem์˜ itemtotalprice - ์ƒํ’ˆ๊ฐ€๊ฒฉ ์ด..
vuex ๋ฐ์ดํ„ฐ ์ „๋‹ฌ(์ƒ์œ„->ํ•˜์œ„) ์ฐธ๊ณ ํ•œ ๊ฒŒ์‹œ๋ฌผ > https://xn--xy1bk56a.run/vuex/3-cart/ https://joshua1988.github.io/web-development/vuejs/vuex-start/ 1. vuex ์„ค์น˜, ์„ค์ • 1) vuex ์„ค์น˜ NPM ์„ค์น˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Vuex ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ”„๋กœ์ ํŠธ์— ์„ค์น˜ํ•œ๋‹ค. npm install vuex 2) vuex ํ”Œ๋Ÿฌ๊ทธ์ธ ๋“ฑ๋ก ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ์œ„์น˜์— store/index.js ํŒŒ์ผ์„ ๋งŒ๋“  ํ›„, Vuex ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ Vue ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋“ฑ๋กํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Vuex๋ฅผ ํ†ตํ•ด Store ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ๋ฌธ์„ ์„ค์ •ํ•œ๋‹ค. // store/index.js import Vue from 'vue' import Vuex from 'vuex' Vue..
vue์— ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์ ์šฉ https://bootstrap-vue.org/ BootstrapVue Quickly integrate Bootstrap v4 components with Vue.js bootstrap-vue.org 1. ํŒจํ‚ค์ง€ ์„ค์น˜ ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” Vue ํ”„๋กœ์ ํŠธ์—์„œ bootstrap-vue ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•œ๋‹ค npm install vue bootstrap-vue bootstrap 2. main.js์— ์ถ”๊ฐ€ Vue์—์„œ bootstrap-vue๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก main.js์— bootstrap-vue๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' import 'bootstrap/dist/css/bootstrap.min.css' import 'boot..
vue ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ตœ์†Œ ์š”๊ตฌ์‚ฌํ•ญ์œผ๋กœ Node.js 4.x ์ด์ƒ(6.x ์ถ”์ฒœ)๊ณผ Git์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ > Vue ์‹œ์ž‘ํ•˜๊ธฐ (+๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •) 1. vue-cli ์„ค์น˜ // vue-cli ์ „์—ญ ์„ค์น˜, ๊ถŒํ•œ์—๋Ÿฌ์‹œ sudo ์ถ”๊ฐ€ npm i -g @vue/cli vue --version Vue CLI๋ฅผ ์„ค์น˜ ํ›„ ๋ฒ„์ „์„ ํ™•์ธํ•ด ๋ณด๋ฉด 3.x์ด ์„ค์น˜๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•˜๋‚˜ ๋” ์„ค์น˜ํ•˜์ž. npm i -g @vue/cli-init 2. vue ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ @vue/cli-init์€ 2.x Template์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ vue init๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. // vue init vue init webpack kurly-clone ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ ์„œ๋ฒ„ ์‹คํ–‰ํ•ด์ค€๋‹ค. cd kurly-clone //ํ”„๋กœ์ ํŠธ ํด..
์›น ๊ธฐํš vueํ”„๋ ˆ์ž„์›Œํฌ ๊ฒฝํ—˜์„ ์Œ“๊ธฐ ์œ„ํ•˜์—ฌ ๋ณธ ์‚ฌ์ดํŠธ๋ฅผ ๊ธฐํšํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. kurlyClone ํ”„๋กœ์ ํŠธ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ 2021.07.16 ~ ํ”„๋กœ์ ํŠธ ํŠน์ง• Frontend๋งŒ ์ž‘์—… 1์ธ ํ”„๋กœ์ ํŠธ PC์šฉ ์›น ํ”„๋กœ์ ํŠธ ์ŠคํŽ™ Frontend Vue, Javascript DB MySql ๐Ÿ‘‰ ๋ฉ”๋‰ด ๊ตฌ์กฐ ๐Ÿ‘‰ ์ดˆ์•ˆ ๐Ÿ‘‰ ์ดˆ์•ˆ