πŸ’» ν”„λ‘œμ νŠΈ/πŸ νšŒμ›κ°€μž… νŽ˜μ΄μ§€πŸ 

[Vue.js] λ²„νŠΌ 둜직이 μ œλŒ€λ‘œ λ™μž‘μ„ μ•ˆν•˜λŠ” 것 같을 λ•Œ, chunk-VZXQDS5F.js?v=5f04997f:2125 [Vue warn]: Data property "idDuplicate" is already defined in Methods.

hyeong._.ing 2025. 8. 20. 14:02

 

 

 

λ²„νŠΌμ΄ λ™μž‘ν•˜μ§€ μ•Šμ„ λ•Œ,
μ–΄λ–€ 였λ₯˜μΈμ§€ μ°Ύμ•„λ³΄μž!

 

 

 

 

1. μ½”λ“œμ™€ 문제 μ‚΄ν”ΌκΈ°

<script> μ½”λ“œ 쀑 method 일뢀

async idDuplicate() {
      try{
        const res = await axios.post("http://localhost:8080/api/idDuplicate", {
          userId: this.userId
        });
        alert("μ‚¬μš©κ°€λŠ₯ν•œ μ•„μ΄λ””μž…λ‹ˆλ‹€.");
        this.idDuplicate = false;
      } catch(e) {
        alert(e.response.data);
        this.idDuplicate = true;
      }
    },
아이디와 이메일을 쀑볡 μ²΄ν¬ν•˜λŠ” λ²„νŠΌμ„ λ§Œλ“€μ—ˆλ‹€. 보기엔 λ¬Έμ œκ°€ μ—†μ–΄λ³΄μ˜€λŠ”λ°, λ²„νŠΌμ„ λˆŒλŸ¬λ„ λ™μž‘μ΄ 이뀄지지 μ•Šμ•˜λ‹€. μŠ€ν”„λ§ λ‚΄λΆ€μ˜ 둜직 문제일까 μ‹Άμ–΄μ„œ μŠ€ν”„λ§λ„ 체크 ν•΄λ΄€μ§€λ§Œ, λ²„νŠΌμ„ λˆŒλŸ¬λ„ μŠ€ν”„λ§κΉŒμ§€ μš”μ²­μ΄ μ˜€μ§€ μ•Šμ•˜λ‹€. κ·Έλ ‡λ‹€λ©΄ vue μ½”λ“œμ— λ¬Έμ œκ°€ μžˆμ–΄μ„œ λ²„νŠΌ μžμ²΄κ°€ λ™μž‘ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” μ˜λ―Έκ°€ λœλ‹€.

 

 

 

 


 

 

 

 

2. μ½˜μ†”λ‘œ 문제 ν™•μΈν•˜κΈ°

<script> μ½”λ“œ 쀑 method 일뢀


async idDuplicate() {

      /* μ½”λ“œ μΆ”κ°€!!!! */
      console.log("idDuplicate λ²„νŠΌ 클릭됨:", this.userId);
      
      try{
        const res = await axios.post("http://localhost:8080/api/idDuplicate", {
          userId: this.userId
        });
        alert("μ‚¬μš©κ°€λŠ₯ν•œ μ•„μ΄λ””μž…λ‹ˆλ‹€.");
        this.idDuplicate = false;
      } catch(e) {
        alert(e.response.data);
        this.idDuplicate = true;
      }
    },
λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ μ½˜μ†”μ— λ‘œκ·Έκ°€ μ°νžˆλ„λ‘ μΆ”κ°€ν–ˆλ‹€. λ²„νŠΌμ— λ¬Έμ œκ°€ μžˆμœΌλ‹ˆ, μ–΄λ–€ λ¬Έμ œμΈμ§€ μ•Œλ €μ€„ 것이닀.

 

chunk-VZXQDS5F.js?v=5f04997f:2125 [Vue warn]: 
Data property "idDuplicate" is already defined in Methods. 
at <BasicRegister onVnodeUnmounted=fn<onVnodeUnmounted> ref=Ref< undefined > > at <RouterView > at <App>
μ—„μ²­λ‚˜κ²Œ κΈ΄ μ—λŸ¬ λ©”μ‹œμ§€κ°€ λ–΄λ‹€. 말을 듀어보면 데이터인 idDuplicateκ°€ 이미 λ©”μ„œλ“œμ— μ •μ˜λ˜μžˆλ‹€κ³  λ§ν•˜λŠ” 것 κ°™λ‹€. μ‰½κ²Œ λ§ν•΄μ„œ data와 method에 λ™μΌν•œ 이름이 μ ν˜€μžˆλ‹€λŠ” 것! (이메일도 였λ₯˜κ°€ λ˜‘κ°™μ΄ μ ν˜€μžˆμ—ˆλ‹€.)

 

 

 

 


 

 

 

 

 

3. 문제 ν•΄κ²°

<script>의 data

  data() {
    return {
      name: "",
      userId: "",
      pwd: "",
      pwdConfirm: "",
      tel: "",
      birth: "",
      email: "",
      idDuplicate: true,
      emailDuplicate: true,
    };
  },
<script> μ½”λ“œ 쀑 method 일뢀


async checkIdDuplicate() {
      try{
        const res = await axios.post("http://localhost:8080/api/idDuplicate", {
          userId: this.userId
        });
        alert("μ‚¬μš©κ°€λŠ₯ν•œ μ•„μ΄λ””μž…λ‹ˆλ‹€.");
        this.idDuplicate = false;
      } catch(e) {
        alert(e.response.data);
        this.idDuplicate = true;
      }
    },
μ•„κΉŒ λ©”μ„œλ“œλͺ…도 idDuplicate둜 μ μ—ˆκ³ , data에도 idDuplicate라고 μ •μ˜ν–ˆλ‹€. μ•Œμ•„μ„œ 데이터와 λ©”μ„œλ“œλ₯Ό ꡬ뢄할 쀄 μ•Œμ•˜λŠ”λ°, λͺ»ν•˜λ‚˜λ³΄λ‹€... 해결법은 μ•„μ£Ό κ°„λ‹¨ν•˜λ‹€. λ©”μ„œλ“œλͺ…을 λ°”κΎΈκ±°λ‚˜ 데이터λͺ…을 λ°”κΎΈλ©΄ λœλ‹€. ν•„μžλŠ” λ©”μ„œλ“œλͺ…을 checkIdDuplicate둜 바꿔쀬닀. 그리고 template에 μ—°κ²°λœ μ½”λ“œκ°€ μžˆμ–΄μ„œ 그것도 확인해쀬닀.