inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Svelte.js 입문 가이드

3. 이벤트 핸들링

bind 와 on:input, value 의 차이점에 대해 질문드립니다.

해결된 질문

548

Jammy

작성한 질문수 3

2

let text 가 정의된 상황에서

<input type="text" bind:value={text} /> 

-> bind를 사용하여 양방향 바인딩을 해주는 방법과

<input type="text" value={text} on:input={(e) => {text = e.target.value}} />

-> value, on:input을 사용하여 양방향 바인딩을 해주는 방법이 결과적으로는 같은데

두번째 방법을 사용해야 할 상황이 있을까요?

생각해보면 회원가입 입력폼에서는 양방향으로 사용할 필요가 없으니까

<input type="text" on:input={(e) => {text = e.target.value}} />

위와 같이 사용해도 될 것 같다는 생각은 드는데

실무에서는 보통 어떤식으로 사용하는지 궁금합니다.

svelte

답변 1

3

HEROPY

정재원 님 안녕하세요.
좋은 아침입니다~😆

우선 결론을 정리하자면, 상황에 맞는 패턴을 사용하면 된다고 생각합니다.

말씀하신 회원가입 입력 양식의 경우 데이터 바인딩 없이 입력값만 사용해 갱신하는 방법도 효율적일 수 있습니다.
또한, 단방향 바인딩 후 input 이벤트로 처리하는 때도, 다음 코드와 같이 값의 갱신 전 다른 로직이 포함된다면 당연히 해당 방식을 사용해야겠죠.
on:input={e => {
    console.log(e) // 등 기타 로직..
    text = e.target.value
}}
결국 입력 양식이 회원가입에만 있는 것은 아니기 때문에 언제든지 다른 패턴이 필요할 수 있습니다.
그래서 상황에 따라 더 효율적인 방법을 선택할 수 있는 아주 주관적인 판단의 문제로 생각이 됩니다.

저 같은 경우는 대부분 입력 양식 바인딩은 양방향을 선호합니다.
입력 양식이라는 것이 화면 측에서 데이터를 갱신하는 방법이기 때문에 모던 프레임워크의 반응성(Reactivity)와 결부해보면 입력 양식 관리는 '양방향 데이터 바인딩'으로 귀결됩니다.
예를 들어 입력 데이터의 유효성 검사(Validation)를 고려하면 데이터를 양방향으로 연결해줘야 검사된 내용의 문제를 입력 양식에 제대로 표현할 수 있을 듯합니다.(물론 꼭 양방향으로 연결하지 않아도 검사를 할 수는 있습니다만..)

혹시 제가 질문 의도를 제대로 이해하지 못했거나 답변이 부족하다면, 다시 질문 남겨주세요.
즐거운 하루 보내세요~😉

프로젝트 실행이 되지 않아 menu API 테스트가 불가합니다 ㅠ

0

134

9

프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문

0

61

2

모듈 버전이 안맞아서 발생하는 문제 같습니다;;;

0

188

2

meteor 버전 때문에 실행이 안됩니다.

0

160

2

graghQL의 transaction 처리속도가 궁금합니다.

0

111

2

질문있습니다.

0

106

2

화면 구성 설명용 도구 이름

0

158

1

Meteor 실행 오류 문의 드립니다.

0

184

1

영호 좋아요 버튼이 콘솔에는 잘 찍히지만 화면에 렌더링 되지 않습니다.

0

129

2

영화목록 component 만들기 에서 질문이 있습니다.

0

209

3

"hello".toUpperCase() 가 안되는데요.

0

148

1

div에 on:click 이벤트 붙일 때 on:key와 관련된 이벤트를 같이 사용해야하나요?

1

907

1

cdn지원과 프론트엔드 프레임워크는 무슨 상관관계가 있나요?

1

783

1

안녕하세요

1

492

1

todo 예제에서 스토어를 사용하실때 따로 stores.js 를 사용하지 않고 바로 App.svelte에서 스토어 객체를 생성하신 이유가 있나요

1

365

1

다른 라이브러리와 통합 또는 외부 라이브러리를 svelte로 불러오는 법.

1

1133

1

스벨트 + 백엔드는 어떻한 형태로 구성을 많이 하나요?

1

1790

1

스토어객체를 왜 굳이 props로 쓰는건가용

3

326

1

props 기본값이 true인가요?

1

288

1

혹시 에코시스템에 대한 질문을 해도 괜찮을까요?

2

300

1

화살표 함수 관련 질문입니다.

2

348

1

설치가 자꾸 실패해요ㅠㅠ

1

694

2

강의감사합니다

3

237

1

Windows 사용자는 npx 명령어 전 'git'을 설치하셔야 합니다.

3

754

1