inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue.js 끝장내기 - 실무에 필요한 모든 것

select box에서의 prop 활용 질문드립니다 !.

516

didgusdhkd3

작성한 질문수 8

1

셀렉트박스 기능을 활용하는데 오류가 나는데 고치지를 못하겠습니다. 

<부모>

[템플릿 영역]

 <select-box
              v-model="preselect_value"
              :items="items"
              :input_id="'my_selectbox'"
              @input="
                value => {
                  preselect_value = value;
                }
              "
            ></select-box>

 

[Data 영역]

  data() {
    return {
      preselect_value: null,
      items: ["1994""1992"]

<자식>

[템플릿영역]

 <select
    v-model="this.value"
    class="custom-select"
    v-bind:id="input_id"
    v-on:input="updateValue($event.target.value)"
  >
    <option v-for="(itemindexin items" :value="item" :key="index">{{ item }}</option>
  </select>

<Data 영역>

 data() {
    return {
      //
    };
  },

  props: ["value""items""input_id"],

  methods: {
    updateValue: function(value) {
      this.$emit("input"value);
    }
  }

<오류메시지>



제가 어떤점에서 실수를 하고 있었을까요?
알려주시면 감사하겠습니다.

vuejs javascript vuex

답변 1

0

캡틴판교

안녕하세요 영찬님 제가 답변이 늦어져서 죄송합니다 :)

좋은 질문 주셨네요. 일단 위 코드에서 2가지 부분을 다시 살펴보시라고 말씀 드리고 싶습니다.

1. v-model의 내부 동작

v-model 디렉티브는 :value와 @input의 조합으로 동작합니다. 아래 글 참고해보시면 좀 더 이해하시기 수월할거에요 :)

https://joshua1988.github.io/web-development/vuejs/v-model-usage/

위 내용 참고해서 input 태그의 value 값과 input 이벤트를 연결하는 로직을 변경해보시면 좋을 것 같습니다.

2. 템플릿 표현식 간결화

첨부해주신 첫 번째 코드를 보면 @input="value => {}" 이런 식으로 코드를 작성하였습니다. 뷰에서 권고하는 템플릿 표현식 작성 방법은 최대한 데이터의 표현을 단순화 해서 나타내는 것입니다. 이렇게 했을 때 코드의 가독성 뿐만 아니라 현재처럼 에러가 발생하였을 때의 디버깅 상황이 훨씬 수월해집니다.

정리해서 아래와 같이 코드를 작성해보시면 좋을 것 같습니다.

@input="handleInput"

methods: {

  handleInput(event) {

    // console.log(event);

    // debugger;

    this.preselect_value = event.target.value;

  }

}

이렇게 하시면 중간에 어떤 값이 오는지 콘솔에 찍어볼 수 도 있고 디버거를 달아서 디버깅도 해볼 수 있습니다 :)

강의 수강해 주셔서 감사합니다 :)

node 10버전 사용

0

64

1

강의에 대해 질문 드립니다.

0

60

1

vue CLI 대신 vite를 사용해도

1

139

2

질문삭제

0

149

2

강사님 코드로 진행할 경우 console.log( config); 도 안찍혔어요. instance 를 생성해서 공통으로 사용하셨는데 loginUser 에만 커스텀한 instance를 넣으니 콘솔에 컨피그 객체가 찍혀요

0

91

1

로그인 에러발생만하면 네트워크 커넥션 에러 발생 해결

0

117

1

rndrmagkqslek.

0

73

1

계속 따라하다가 안돼서 bash에 연결할떄 안되더라구요

0

104

1

axios 에러가 뜹니다.

1

237

2

vue3로 진행하시면서 router에서 '*' 적용이 안되시는 분들

2

312

1

vue 관련 다른 강의 출시예정이없으신지 궁금합니다!

1

154

1

AppHeader.vue에 vue 디폴트 만들에 Delete `␍` 오류나면

1

195

1

vue3로 따라오시다가 import axios 에러 뜨시는 분들

2

445

2

$router 를 이용한 메인 페이지로 이동

1

290

1

혹시 node.js 10.24 버전으로 해도 상관없나요?

2

461

2

에러 경로가 LoginForm.vue 43번째줄 말고 다른 경로로 출력됩니다.

1

299

2

pinia 사용할려고 하는데 에러가 나옵니다.

1

486

2

swagger ui의 post/posts에 글 기록하려고 하면 unauthorized 에러가 납니다..

1

1102

2

safari 개발자 도구에 대한 질문입니다

1

568

2

스웨거에 글 등록시 401 에러가 나와요 ㅠ

1

722

2

이 에러 때문에 진행이 안되네요 ㅠ

1

675

1

windows .nvmrc nvm use 실행 오류

1

1547

2

강사님 최신화가 필요해보입니다.

2

960

2

npm i 에러

1

612

1