๋ฌธ์ œ ํ•ด๊ฒฐ ๐Ÿ›  โ€“ vue

joyfulwaveยท2023๋…„ 4์›” 26์ผ
0

๋‚˜๋งŒ์˜ ์‚ฌ์ „ - VUE

๋ชฉ๋ก ๋ณด๊ธฐ
5/6
post-thumbnail

๐Ÿ”’ ๋ฌธ์ œ ์ƒํ™ฉ

๊ฒŒ์‹œํŒ์˜ ์ž„์‹œ์ €์žฅ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด๋ณด์ž. (style ์€ ๋‹ค ์ œ์™ธํ–ˆ๋‹ค.)

1. Board.vue ์—์„œ [๊ธ€์“ฐ๊ธฐ] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ฌ์ฐฝ์ด ๋ณด์—ฌ์ง„๋‹ค.
2. ๋ชจ๋‹ฌ input์— ์–ด๋– ํ•œ ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค.
3-1. [์ž„์‹œ์ €์žฅ] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด localStorage์— ํ•ด๋‹น ๋‚ด์šฉ์ด ์ €์žฅ๋œ๋‹ค.
3-2. [์ €์žฅ] ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด DB์— ์ €์žฅ์ด ๋œ๋‹ค. (ํ•ด๋‹น ๋‚ด์šฉ ์ƒ๋žต)
4. ์ž„์‹œ ์ €์žฅ๋œ ์ƒํƒœ์—์„œ Board.vue ์—์„œ ๋‹ค์‹œ ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ฌ์ฐฝ์œผ๋กœ ์ง„์ž…ํ•  ๋•Œ ์ž„์‹œ์ €์žฅ๋œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š”๋‹ค. TRUE ์ด๋ฉด localStorage์˜ ๊ฐ’์„ ๊ฐ€์ ธ์™€ ํ™”๋ฉด์— ๋ฟŒ๋ ค์ค€๋‹ค. FALSE ์ด๋ฉด localStorage์˜ ๊ฐ’์„ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•œ๋‹ค.

๐Ÿ”‘ ๋ฌธ์ œ ํ•ด๊ฒฐ

[Board.vue]

<template>  
  <div>
  	<div @click="showWrite()"><span>์ƒˆ ๊ธ€์“ฐ๊ธฐ</span></div>
  </div>
  
  <div v-if="isShowWrite == true">
    <!-- ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ฌ์ฐฝ -->
    <div><span>์ œ๋ชฉ</span></div>  
	<div><input type="text" id="editTitle" placeholder="์ž…๋ ฅํ•˜์„ธ์š”" v-model="postTitle"/></div>  

	<div @click="setTempStore"><span>์ž„์‹œ ์ €์žฅ</span></div>
	<div @click="savePost"><span>์ €์žฅ</span></div>
	<div @click="goBoard"><span>๋‚˜๊ฐ€๊ธฐ</span></div>
  </div>
  
  <div v-if="isExistsTempModal == true">
    <!-- localStorage์— ์ž„์‹œ ์ €์žฅ๋œ ๊ฐ’์ด ์žˆ์„ ๋•Œ ์ž„์‹œ ์ €์žฅ๋œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ๋ชจ๋‹ฌ์ฐฝ -->
    <div><span>์ตœ๊ทผ์— ์ž‘์„ฑ์ค‘์ธ ๊ฒŒ์‹œ๊ธ€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถˆ๋Ÿฌ์˜ฌ๊นŒ์š”?</span></div>  
	<div @click="getTempStore(false)"><span>์ทจ์†Œ</span></div>
	<div @click="getTempStore(true)"><span>ํ™•์ธ</span></div>
  </div>
</template>

<script>    
import Write from "/๊ฒฝ๋กœ/Write"  
export default {
  data: {
  	postTitle: "",
  	isShowWrite: false,
  	isExistsTempModal: false,
  },
  method: {
  	showWrite(){
  		// ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋‹ฌ์ฐฝ์ด ๋œฌ๋‹ค.
  		isShowWrite = true 
  		// ๋ชจ๋‹ฌ์ฐฝ์ด ๋œฐ ๋•Œ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
  		this.checkTempStore() 
  	},
  	checkTempStore(){      
      if(localStorage.getItem("tempPost")){
  		// ์ž„์‹œ์ €์žฅ๋œ ๊ฐ’์ด ์žˆ์„ ๋•Œ ์ž„์‹œ ์ €์žฅ๋œ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ฌ์ง€ ์—ฌ๋ถ€๋ฅผ ๋ฌป๋Š” ๋ชจ๋‹ฌ์ฐฝ์„ ๋„์šด๋‹ค.
        this.isExistsTempModal = true
      }
    },
  	getTempStore(){
  		if(flag === true){ // ๋ชจ๋‹ฌ์ฐฝ์˜ ํ™•์ธ ๋ฒ„ํŠผ        
          // String ์œผ๋กœ ์ €์žฅ๋œ ๊ฐ’ Object๋กœ ๋ณ€ํ™˜
          let tempPost = JSON.parse(localStorage.getItem("tempPost")) 
          // ์ €์žฅ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ
          this.postTitle = tempPost[0].title
        }else if(flag === false){ // ๋ชจ๋‹ฌ์ฐฝ์˜ ์ทจ์†Œ ๋ฒ„ํŠผ
          // ์ €์žฅ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด localStorage ์‚ญ์ œ
          localStorage.removeItem("tempPost")
  		  this.$router.go()
        }
  	},
  	setTempStore(){
        let tempPost = [{title: this.postTitle}]
  		// ๊ฒŒ์‹œํŒ์˜ ๊ฒฝ์šฐ ์ œ๋ชฉ, ๋‚ด์šฉ, ์ž‘์„ฑ์ž ๋“ฑ ๋„˜๊ฒจ์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ฒดํ™”ํ•ด์„œ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. object ํ˜•ํƒœ๋กœ ๋ฐ”๋กœ ์ €์žฅํ•˜๊ฒŒ ๋˜๋ฉด [object, Object] ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์‚ฌํ•ญ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด JSON.stringify() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.
        localStorage.setItem("tempPost", JSON.stringify(tempPost))
		alert("์ž„์‹œ ์ €์žฅ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
  	},
  	savePost(){
  		// DB ์ธ์„œํŠธ
  	},
  	goBoard(){
  		isShowWrite = false // Write ๋ชจ๋‹ฌ์ฐฝ ๊บผ์ง
  	},
  },
}
</script>

<style></style>

๐Ÿ“Œ TIP

  • localStorage์— ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” JSON.stringify() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ String ํ˜•ํƒœ๋กœ ์ €์žฅํ•œ๋‹ค.
	localStorage.setItem("tempPost", JSON.stringify(tempPost))
  • localStorage์— ์ €์žฅ๋œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” JSON.parse() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ String ํ˜•ํƒœ๋ฅผ Object๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
	JSON.parse(localStorage.getItem("tempPost")) 
  • localStorage์— ๊ฐ’์ด ์ €์žฅ๋˜์—ˆ๋Š”์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๋กฌ๊ธฐ์ค€, [F12 ๊ด€๋ฆฌ์žํˆด] - [Application] - [Storage] - [Local Storage] ์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€