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

โญ Personal_Study/Vue23

Article with Vue Articles with Vue ์‚ฌ์ „ ์ค€๋น„ $ vue create articles $ cd articles $ vue add vuex $ vue add router // App.vue Index state ์ •์˜ // store/index.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { article_id: 3, articles: [ { id: 1, title: 'title1', content: 'content1', createdAt: new Date().getTime() }, { id: 2, title: 'title2', content: 'content2', creat.. 2022. 11. 19.
Navigation Guard Navigation Guard ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ฐ€๋“œ โœ” Vue router๋ฅผ ํ†ตํ•ด ํŠน์ • URL์— ์ ‘๊ทผํ•  ๋•Œ ๋‹ค๋ฅธ url๋กœ redirect ํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น URL๋กœ์˜ ์ ‘๊ทผ์„ ๋ง‰๋Š” ๋ฐฉ๋ฒ• ๋„ค๋น„๊ฒŒ์ด์…˜ ๊ฐ€๋“œ์˜ ์ข…๋ฅ˜ โœ” ์ „์—ญ ๊ฐ€๋“œ: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์—ญ์—์„œ ๋™์ž‘ โœ” ๋ผ์šฐํ„ฐ ๊ฐ€๋“œ: ํŠน์ • url์—์„œ๋งŒ ๋™์ž‘ โœ” ์ปดํฌ๋„ŒํŠธ ๊ฐ€๋“œ: ๋ผ์šฐํ„ฐ ์ปดํฌ๋„ŒํŠธ ์•ˆ์— ์ •์˜ ์ „์—ญ ๊ฐ€๋“œ Global Before Guard โœ” ๋‹ค๋ฅธ url ์ฃผ์†Œ๋กœ ์ด๋™ํ•  ๋•Œ ํ•ญ์ƒ ์‹คํ–‰ โœ” router/index.js์— router.beforeEach()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ • โœ” ์ฝœ๋ฐฑ ํ•จ์ˆ˜์˜ ๊ฐ’์œผ๋กœ ๋‹ค์Œ 3๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›๋Š”๋‹ค to: ์ด๋™ํ•  url ์ •๋ณด๊ฐ€ ๋‹ด๊ธด Route ๊ฐ์ฒด from: ํ˜„์žฌ url ์ •๋ณด๊ฐ€ ๋‹ด๊ธด route ๊ฐ์ฒด next: ์ง€์ •ํ•œ url๋กœ ์ด๋™ํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜ .. 2022. 11. 19.
Vue Router Vue Router Routing Routing โœ” ๋„คํŠธ์›Œํฌ์—์„œ ๊ฒฝ๋กœ๋ฅผ ์„ ํƒํ•˜๋Š” ํ”„๋กœ๋ ˆ์Šค โœ” ์›น ์„œ๋น„์Šค์—์„œ์˜ ๋ผ์šฐํŒ…: ์œ ์ €๊ฐ€ ๋ฐฉ๋ฌธํ•œ URL์— ๋Œ€ํ•œ ์ ์ ˆํ•œ ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ตํ•˜๋Š” ๊ฒƒ Routing in SSR โœ” Server๊ฐ€ ๋ชจ๋“  ๋ผ์šฐํŒ…์„ ํ†ต์ œ โœ” URL๋กœ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋ฉด ์‘๋‹ต์œผ๋กœ ์™„์„ฑ๋œ HTML ์ œ๊ณต Django๋กœ ๋ณด๋‚ธ ์š”์ฒญ์˜ ์‘๋‹ต HTML์€ ์™„์„ฑ๋ณธ์ธ ์ƒํƒœ โœ” ๊ฒฐ๋ก ์ ์œผ๋กœ, Routing(URL)์— ๋Œ€ํ•œ ๊ฒฐ์ •๊ถŒ์€ ์„œ๋ฒ„๊ฐ€ ๊ฐ€์ง„๋‹ค. Routing in SPA / CSR โœ” ์„œ๋ฒ„๋Š” ํ•˜๋‚˜์˜ HTML(index.html)๋งŒ์„ ์ œ๊ณต โœ” ์ดํ›„์— ๋ชจ๋“  ๋™์ž‘์€ ํ•˜๋‚˜์˜ HTML ๋ฌธ์„œ ์œ„์—์„œ JavaScript ์ฝ”๋“œ ํ™œ์šฉ DOM์„ ๊ทธ๋ฆฌ๋Š”๋ฐ ํ•„์š”ํ•œ ์ถ”๊ฐ€์ ์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด axios์™€ ๊ฐ™์€ AJAX ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉ.. 2022. 11. 18.
UX & UI UX & UI UX (User Experience) โœ” ์œ ์ €์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์ด์— ์žˆ๋Š” ๋ถ„์•ผ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์ €๋ฅผ ์กฐ์‚ฌํ•˜๊ณ  ๋ถ„์„ํ•ด์„œ ๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์†Œํ†ต โœ” ์œ ์ €๊ฐ€ ๋Š๋ผ๋Š” ๋Š๋‚Œ, ํƒœ๋„ ๊ทธ๋ฆฌ๊ณ  ํ–‰๋™์„ ๋””์ž์ธ ์ข‹์€ UX๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”... โœ” ์œ ์ € ๋ฆฌ์„œ์น˜, ๋ฐ์ดํ„ฐ ์„ค๊ฒŒ ๋ฐ ์ •์ œ, ์œ ์ € ์‹œ๋‚˜๋ฆฌ์˜ค, ํ”„๋กœํ†  ํƒ€์ž… ์„ค๊ณ„ ๋“ฑ์ด ํ•„์š” UI (User Interface) โœ” ์œ ์ €์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ํ™”๋ฉด์„ ๋””์ž์ธ โœ” UI๋ฅผ ๊ณ ๋ คํ•œ ๋””์ž์ธ์„ ๋ฐ˜์˜, ์ด ๊ณผ์ •์—์„œ ๊ธฐ๋Šฅ ๊ฐœ์„  ํ˜น์€ ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ Front-end ๊ฐœ๋ฐœ์ž์™€ ๊ฐ€์žฅ ๋งŽ์ด ์†Œํ†ต Interface โœ” ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๊ฐœ์˜ ์‹œ์Šคํ…œ, ์žฅ์น˜ ์‚ฌ์ด์—์„œ ์ •๋ณด๋‚˜ ์‹ ํ˜ธ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒฝ์šฐ์˜ ์ ‘์  โœ” ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๊ธฐ๋ฅผ ์‰ฝ๊ฒŒ ๋™์ž‘ ์‹œํ‚ค๋Š”๋ฐ ๋„์›€์„ ์ฃผ๋Š” ์‹œ์Šคํ…œ โœ” C.. 2022. 11. 18.
Todo: Local Storage Todo: Local Storage Local Storage ๊ฐœ์š” โœ” ๋ธŒ๋ผ์šฐ์ €์˜ Local Storage์— todo ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ Window.localStorage โœ” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ œ๊ณตํ•˜๋Š” ์ €์žฅ๊ณต๊ฐ„ ์ค‘ ํ•˜๋‚˜์ธ Local Storage์— ๊ด€๋ จ๋œ ์†์„ฑ โœ” ๋งŒ๋ฃŒ๋˜์ง€ ์•Š์€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณด์กด๋œ๋‹ค. โœ” ๋ฐ์ดํ„ฐ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์ €์žฅ โœ” ๊ด€๋ จ ๋ฉ”์„œ๋“œ setItem(key, value): key, value ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ getItem(key): key์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ ์กฐํšŒ Local Storage ์‹ค์Šต ์‹ค์Šต // index.js export default new Vuex.Store({ ... actions: { .. 2022. 11. 16.
Vuex ํ™œ์šฉํ•ด Todo SPA ์•ฑ ๋งŒ๋“ค๊ธฐ Todo ์‚ฌ์ „ ์ค€๋น„ ํ”„๋กœ์ ํŠธ ๊ฐœ์‹œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ vuex ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€ $ vue create todo-vuex-app $ cd todo-vuex-app $ vue add vuex HelloWorld ์ปดํฌ๋„ŒํŠธ ๋ฐ ๊ด€๋ จ ์ฝ”๋“œ ์‚ญ์ œ ์ปดํฌ๋„ŒํŠธ ์ž‘์„ฑ // components/TodoListItem.vue Todo // components/TodoList.vue // components/TodoForm.vue Todo Form // App.vue Todo List ํŽ˜์ด์ง€ ํ™•์ธ Read Todo State ์„ธํŒ… // index.js import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { .. 2022. 11. 15.