Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 성능최적화
- 티스토리꾸미기
- javascript
- TSDoc
- 누구나 자료구조와 알고리즘
- 타입좁히기
- returnType
- 타입스크립트
- 2022
- NonNullable
- 레이아웃쪼개기
- JS console
- Chart.js
- 폰트적용하기
- 리액트
- const 단언문
- React Native
- CSS
- 제네릭
- typescript
- 개발콘텐츠
- 반복줄이기
- 커스텀
- 공통컴포넌트
- React.js
- reactjs
- utilty type
- click and drag
- vue.js
- react
Archives
- Today
- Total
몽땅뚝딱 개발자
[Vue.js] ref의 input 포커스 이벤트 주기 본문
<strong> 영역을 눌렀을 때 <input>이 display: block되면서(=input은 none) 문구를 수정하고, <input>에서 blur 됐을 때 다시 <strong> 태그가 block되는 기능을 구현했다. (타이틀 수정 기능,,)
문제는 input이 활성화되면서 focus()가 되어야했는데 아래와 같이 작성 후 클릭이벤트를 주었을 때 아무런 동작도 하지 않았다.
<strong v-if="!isTryModify" class="title" @click="tryEdit">
{{ title }}
</strong>
<input
v-if="isTryModify"
ref="titleRef"
v-model="title"
/>
const tryEdit = () => {
isTryModify.value = true
if (titleRef.value) titleRef.value.focus()
}
스크립트 부분에 setTimeout을 0으로 걸어주니 해결되었다.
왜인지는 더 공부해봐야하는 부분....
const tryEdit = () => {
isTryModify.value = true
setTimeout(() => {
if (titleRef.value) titleRef.value.focus()
}, 0)
}
개인적으로 공부한 내용을 정리하는 블로그로
잘못된 개념을 게시하지않도록 주의하고 있으나 오류가 있을 수 있습니다.
'Development > Vue.js' 카테고리의 다른 글
[Vue.js] Object가 아닌 string 형태의 데이터를 보내보자 (0) | 2022.10.19 |
---|---|
[Vue.js] Vue3에서 빌트인 컴포넌트 <component> 사용하기 (0) | 2022.06.25 |
[Vue.js] Vue3 - defineProps() & defineEmits() (0) | 2022.06.08 |
[Vue.js] 비트(Vite)란? (작성 중) (0) | 2022.06.04 |
[Vue.js] Vue3의 Composition API (0) | 2022.04.13 |
Comments