Programming Project ์ž‘์—…์‹ค/๋‚ด์šฉ ์ •๋ฆฌ

[FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ๊ฒŒ์‹œํŒ : ๋‹ต๋ณ€ ์‚ญ์ œ

์ฃผ๋‹ˆ์“ฐ๐Ÿง‘‍๐Ÿ’ป 2022. 3. 23. 02:40
728x90
๋ฐ˜์‘ํ˜•

 

 

 

๐Ÿง‘๐Ÿป‍๐Ÿ’ป Git Hub ์ฃผ์†Œ

 

 

 

๐Ÿ—‚ ๋ชฉ์ฐจ

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - Home / Main

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ : ๋ชฉ๋ก ์กฐํšŒ

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ : ์ƒ์„ธ ์กฐํšŒ

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ : ๋“ฑ๋ก / ์ˆ˜์ •

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ : ์‚ญ์ œ

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ : ๋‹ต๋ณ€ ๋“ฑ๋ก / ์ˆ˜์ •

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ : ๋‹ต๋ณ€ ์‚ญ์ œ

 

๐Ÿ‘จ‍๐Ÿ‘ฉ‍๐Ÿ‘ง‍๐Ÿ‘ฆ ํšŒ์› ๊ด€๋ จ

โ— [FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - ํšŒ์› ๊ด€๋ จ : ํšŒ์› ๊ฐ€์ž…



 

- ๋ถ€ ๋ก -

[Vue.js] axios ์„ค์น˜

[FrontEnd] html Tag ์ •๋ฆฌ

[CSS] CSS ์ •๋ฆฌ

[FrontEnd][Vue-PJ] ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์„œ๋น„์Šค - Paging ์ฒ˜๋ฆฌ

[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - Vue Router

 

 

 

 




 

๐Ÿš€ ๋‹ต๋ณ€ ๋งŒ๋“ค๊ธฐ - ์‚ญ์ œ

    ๐Ÿ”ฝ  ํ™”๋ฉด

๊ฐœ๋ฐœ ์ง€์› - Q&A ๊ฒŒ์‹œํŒ ์ƒ์„ธ ์กฐํšŒ




 

    ๐Ÿ”ฝ  Source Code

DevInquryDetailView.vue - 68 ~ 72

 

'๋‹ต๊ธ€ ์‚ญ์ œ'๋Š” 71๋ฒˆ์งธ ์ค„์— '๋‹ต๊ธ€ ์‚ญ์ œ' Button์„ ๋ˆ„๋ฅด๋ฉด์„œ ์‹œ์ž‘๋˜๋Š”๋ฐ, ์ด ๋•Œ click Event๋กœ `deleteReplyPopup` ์ด๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ true๊ฐ€ ๋˜๋ฉด์„œ ์‹œ์ž‘ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

DevInquryDetailView.vue - data()

 

๋ฐ”๋กœ 228๋ฒˆ์งธ `deletePopup`์ด true๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

 

DevInquryDetailView.vue - 177 ~ 193

deletePopup์ด True๊ฐ€ ๋˜๋ฉด 178๋ฒˆ์งธ ์ค„์— v-show๊ฐ€ ํ™œ์„ฑํ™”๊ฐ€ ๋˜๊ณ , ์ด ๊ณณ์— ์ž‘์„ฑํ•œ Popup์— ํ•ด๋‹นํ•˜๋Š” ๋ถ€๋ถ„์ด ํ™œ์„ฑํ™” ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

๋‹ต๊ธ€ ์‚ญ์ œ ๋ฒ„ํŠผ ํด๋ฆญ

๋ฐ˜์‘ํ˜•

 

๊ทธ๋Ÿผ ์œ„์™€ ๊ฐ™์ด Popup์ฐฝ์ด ๋œจ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. 'ํ™•์ธ' ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๊ฒŒ ๋˜๋ฉด `DevInquryDetailView.vue - 177 ~ 193` ๊ทธ๋ฆผ์— 189๋ฒˆ์งธ ์ค„์— ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๊ฒƒ์ธ๋ฐ, ์ด ๋•Œ, Click Event๋กœ doDeleteReply()๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

์—ฌ๊ธฐ์„œ ์ทจ์†Œ๋ฅผ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด `deletePopup`์€ false๊ฐ€ ๋˜๊ณ , ์œ„์— Popup์ฐฝ์€ ๋‹ซํžˆ๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด์—์š”.

 

DevInquryDetailView.vue - 327 ~ 342

๊ทธ๋Ÿผ ์ด ๊ณณ์— ์œ„์น˜ํ•œ `doDeleteReply`๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ์นœ๊ตฌ๊ฐ€ ๋™์ž‘ํ•˜๋ฉด ์ตœ์ดˆ devInquryReplyDelete๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. ์ด ๋•Œ, searchParam์•ˆ์— ์žˆ๋Š” ๊ฒŒ์‹œ๊ธ€ ์ผ๋ จ๋ฒˆํ˜ธ(inqrySn)์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด์—์š”.

 

DevInquryDetailView.vue - 216 ~ 217

์ด ์นœ๊ตฌ๋Š” ์ด ๊ณณ์— import ๋˜์–ด ์žˆ๋Š”๋ฐ, ๋ฐ”๋กœ Api๋ผ๊ณ  ๋ช…์นญ๋œ js ํŒŒ์ผ์— ์œ„์น˜ํ•œ Method์ธ ๊ฒƒ์ด์—์š”.

 

 

devInquryReplyApi.js - 33 ~ 46

๊ทธ๋Ÿผ ์—ฌ๊ธฐ ์œ„์น˜ํ•œ Method๊ฐ€ ๋™์ž‘ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

์ด ์นœ๊ตฌ๊ฐ€ ๋™์ž‘์„ ํ•˜๋ฉด ๋™์ž‘์„ ํ•˜๊ณ , ์–ด๋–ค์ผ์„ ํ•˜๊ฒ ๋‹ค๊ณ  Console์— ์ถœ๋ ฅ์„ ํ•ด ์ค€ ๋’ค API์— ๋งž๋Š” URI์— ๋งž์ถ”์–ด์„œ HTTP Method๋Š” `delete`๋กœ ํ•˜์—ฌ params์— ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌ ๋œ ๊ฒŒ์‹œ๊ธ€ ์ผ๋ จ๋ฒˆํ˜ธ(InqrySn)์„ ์ „๋‹ฌํ•˜๋Š”๋ฐ, delete๋Š” Request Body์— ์–ด๋–ค ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ , Back End์˜ Path Variable์— ๋งž์ถ”์–ด ๊ฐ’์„ URI์— ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด data๊ฐ€ ์•„๋‹Œ params๋ฅผ ์ด์šฉํ•ด์„œ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด์—์š”. 

DevInquryDetailView.vue - 342 ~ 359

๋‹ค์‹œ ์ด ๊ณณ์œผ๋กœ ๋Œ์•„์˜ค๋ฉด 345๋ฒˆ์งธ ์ค„์— `response`์— Back End๊ฐ€ ์ „๋‹ฌ ํ•ด ์ค€ ์‘๋‹ต๊ฐ’์ด ๋‹ด๊ธฐ๊ฒŒ ๋˜๊ณ , ์ด ์‘๋‹ต๊ฐ’์€ data์•ˆ์— ๋‹ด๊ธฐ๊ฒŒ ๋˜๋Š”๋ฐ, ์ตœ์ดˆ ์–ด๋–ค ๋‚ด์šฉ์ด ๋‹ด๊ฒผ๋Š”์ง€ Console ์ถœ๋ ฅ์œผ๋กœ ํ™•์ธ์„ ํ•˜๊ณ ,

if๋ฌธ์„ ํ†ตํ•ด Back End๊ฐ€ ์ „๋‹ฌ ํ•ด ์ค€ ๊ฐ’ ์ค‘์— code๊ฐ€ 200์ด๋ฉด ์ฆ‰, ์ •์ƒ์œผ๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚ฌ๋‹ค๋ฉด '๋‹ต๊ธ€์„ ์ •๋ง ์‚ญ์ œ ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?' ๋ผ๊ณ  ๋ฌป๋Š” Popup์„ ๋‹ซ๊ธฐ ์œ„ํ•ด `deleteReplyPopup`์˜ ๊ฐ’์„ false๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ , getDetailViewWhthReply()๋ฅผ ํ˜ธ์ถœ ํ•˜๋Š” ๊ฒƒ์ด์—์š”. 

ํ•ด๋‹น ๋‚ด์šฉ์€ '์ด ๊ณณ'์—์„œ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ ๋˜๋Š”์ง€ ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ์ค€๋น„ ํ•ด ๋‘˜๊ฒŒ์š”!

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๋‹ต๊ธ€์ด ์‚ญ์ œ ๋˜๊ณ  ๋‚˜์„œ ๋‹ค์‹œ ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€ ์ผ๋ จ๋ฒˆํ˜ธ์— ๋งž๋Š” ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ ์กฐํšŒ Page๊ฐ€ Rendering ๋˜๊ฒŒ ๋˜๊ณ , ๋‹ต๊ธ€์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์˜ ์ƒ์„ธ ์กฐํšŒ Page๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜ํƒ€๋‚˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

๋‹ต๊ธ€์ด ์‚ญ์ œ๋œ ๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ ๋ณด๊ธฐ

 

 

๋งŒ์•ฝ ์ •์ƒ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์ง€ ๋ชปํ•ด catch์ ˆ๋กœ ๋น ์ง€๊ฒŒ ๋˜๋ฉด Console์— ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋Š”์ง€ ์ถœ๋ ฅํ•˜๊ณ , ๊ฒฝ๊ณ ์ฐฝ์„ ํ†ตํ•ด ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด์—์š”.

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•