2022. 3. 23. 02:40ใProgramming Project ์์ ์ค/๋ด์ฉ ์ ๋ฆฌ
๐ง๐ป๐ป 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] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - ํ์ ๊ด๋ จ : ํ์ ๊ฐ์
- ๋ถ ๋ก -
[FrontEnd][Vue-PJ] ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ ์๋น์ค - Paging ์ฒ๋ฆฌ
[Vue.js] ๊ธฐ์ด ๊ฐ๋ ์ ๋ฆฌ - Vue Router
๐ ๋ต๋ณ ๋ง๋ค๊ธฐ - ์ญ์
๐ฝ ํ๋ฉด
๐ฝ Source Code
'๋ต๊ธ ์ญ์ '๋ 71๋ฒ์งธ ์ค์ '๋ต๊ธ ์ญ์ ' Button์ ๋๋ฅด๋ฉด์ ์์๋๋๋ฐ, ์ด ๋ click Event๋ก `deleteReplyPopup` ์ด๋ผ๋ ๋ณ์๊ฐ true๊ฐ ๋๋ฉด์ ์์ ๋๋ ๊ฒ์ด์์.
๋ฐ๋ก 228๋ฒ์งธ `deletePopup`์ด true๊ฐ ๋๋ ๊ฒ์ด์์.
deletePopup์ด True๊ฐ ๋๋ฉด 178๋ฒ์งธ ์ค์ v-show๊ฐ ํ์ฑํ๊ฐ ๋๊ณ , ์ด ๊ณณ์ ์์ฑํ Popup์ ํด๋นํ๋ ๋ถ๋ถ์ด ํ์ฑํ ๋๋ ๊ฒ์ด์์.
๊ทธ๋ผ ์์ ๊ฐ์ด Popup์ฐฝ์ด ๋จ๊ฒ ๋๋ ๊ฒ์ด์์. 'ํ์ธ' ๋ฒํผ์ ํด๋ฆญํ๊ฒ ๋๋ฉด `DevInquryDetailView.vue - 177 ~ 193` ๊ทธ๋ฆผ์ 189๋ฒ์งธ ์ค์ ๋ฒํผ์ ๋๋ฅธ ๊ฒ์ธ๋ฐ, ์ด ๋, Click Event๋ก doDeleteReply()๊ฐ ํธ์ถ๋๊ฒ ๋๋ ๊ฒ์ด์์.
์ฌ๊ธฐ์ ์ทจ์๋ฅผ ๋๋ฅด๊ฒ ๋๋ฉด `deletePopup`์ false๊ฐ ๋๊ณ , ์์ Popup์ฐฝ์ ๋ซํ๊ณ ๋๋๋ ๊ฒ์ด์์.
๊ทธ๋ผ ์ด ๊ณณ์ ์์นํ `doDeleteReply`๊ฐ ๋์ํ๊ฒ ๋๋๋ฐ, ์ด ์น๊ตฌ๊ฐ ๋์ํ๋ฉด ์ต์ด devInquryReplyDelete๋ฅผ ํธ์ถํ๊ฒ ๋๋ ๊ฒ์ด์์. ์ด ๋, searchParam์์ ์๋ ๊ฒ์๊ธ ์ผ๋ จ๋ฒํธ(inqrySn)์ ์ ๋ฌํ๋ ๊ฒ์ด์์.
์ด ์น๊ตฌ๋ ์ด ๊ณณ์ import ๋์ด ์๋๋ฐ, ๋ฐ๋ก Api๋ผ๊ณ ๋ช ์นญ๋ js ํ์ผ์ ์์นํ Method์ธ ๊ฒ์ด์์.
๊ทธ๋ผ ์ฌ๊ธฐ ์์นํ Method๊ฐ ๋์ํ๊ฒ ๋๋ ๊ฒ์ด์์.
์ด ์น๊ตฌ๊ฐ ๋์์ ํ๋ฉด ๋์์ ํ๊ณ , ์ด๋ค์ผ์ ํ๊ฒ ๋ค๊ณ Console์ ์ถ๋ ฅ์ ํด ์ค ๋ค API์ ๋ง๋ URI์ ๋ง์ถ์ด์ HTTP Method๋ `delete`๋ก ํ์ฌ params์ ๋งค๊ฐ ๋ณ์๋ก ์ ๋ฌ ๋ ๊ฒ์๊ธ ์ผ๋ จ๋ฒํธ(InqrySn)์ ์ ๋ฌํ๋๋ฐ, delete๋ Request Body์ ์ด๋ค ๊ฐ์ ์ ๋ฌํ์ง ์๊ณ , Back End์ Path Variable์ ๋ง์ถ์ด ๊ฐ์ URI์ ๋ณด๋ด๊ธฐ ์ํด data๊ฐ ์๋ params๋ฅผ ์ด์ฉํด์ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ์ด์์.
๋ค์ ์ด ๊ณณ์ผ๋ก ๋์์ค๋ฉด 345๋ฒ์งธ ์ค์ `response`์ Back End๊ฐ ์ ๋ฌ ํด ์ค ์๋ต๊ฐ์ด ๋ด๊ธฐ๊ฒ ๋๊ณ , ์ด ์๋ต๊ฐ์ data์์ ๋ด๊ธฐ๊ฒ ๋๋๋ฐ, ์ต์ด ์ด๋ค ๋ด์ฉ์ด ๋ด๊ฒผ๋์ง Console ์ถ๋ ฅ์ผ๋ก ํ์ธ์ ํ๊ณ ,
if๋ฌธ์ ํตํด Back End๊ฐ ์ ๋ฌ ํด ์ค ๊ฐ ์ค์ code๊ฐ 200์ด๋ฉด ์ฆ, ์ ์์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋๋ฌ๋ค๋ฉด '๋ต๊ธ์ ์ ๋ง ์ญ์ ํ์๊ฒ ์ต๋๊น?' ๋ผ๊ณ ๋ฌป๋ Popup์ ๋ซ๊ธฐ ์ํด `deleteReplyPopup`์ ๊ฐ์ false๋ก ๋ฐ๊ฟ์ฃผ๊ณ , getDetailViewWhthReply()๋ฅผ ํธ์ถ ํ๋ ๊ฒ์ด์์.
ํด๋น ๋ด์ฉ์ '์ด ๊ณณ'์์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ ๋๋์ง ํ์ธ ํ์ค ์ ์๋๋ก ์ค๋น ํด ๋๊ฒ์!
์ด๋ ๊ฒ ๋๋ฉด ๋ต๊ธ์ด ์ญ์ ๋๊ณ ๋์ ๋ค์ ํด๋น ๊ฒ์๊ธ ์ผ๋ จ๋ฒํธ์ ๋ง๋ ๊ฒ์๊ธ ์์ธ ์กฐํ Page๊ฐ Rendering ๋๊ฒ ๋๊ณ , ๋ต๊ธ์ ์ ๋ ฅํ ์ ์๋ ์ํ์ ์์ธ ์กฐํ Page๊ฐ ์๋์ ๊ฐ์ด ๋ํ๋๊ฒ ๋๋ ๊ฒ์ด์์.
๋ง์ฝ ์ ์ ์ฒ๋ฆฌ๊ฐ ๋์ง ๋ชปํด catch์ ๋ก ๋น ์ง๊ฒ ๋๋ฉด Console์ ์ด๋ค ๋ฌธ์ ๊ฐ ์๊ฒผ๋์ง ์ถ๋ ฅํ๊ณ , ๊ฒฝ๊ณ ์ฐฝ์ ํตํด ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค๊ณ ์๋ ค์ฃผ๊ณ ๋๋๋ ๊ฒ์ด์์.