유니코드 입력이 정상적으로 이루어지지 않는 상황을 확인하기 위해 예제를 준비한다.
Copy <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-model example</title>
<style>
input {
font-size: 20px;
padding: 0.75em;
display: block;
margin:0.5em 0;
}
</style>
</head>
<body>
<div id="app">
<input type="text" v-model="text">
<div>{{text}}</div>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
const app = Vue.createApp({
data(){
return {
text : ""
};
}
});
app.mount("#app");
</script>
</body>
</html>
테스트 예제를 실행하면 한글 등 유니코드가 실시간으로 입력되지 않는다는 것을 알 수 있다. 이에 대한 공식 사이트의 해결책은 다음과 같다.
문제를 해결하려면 키보드 이벤트를 추가해야 한다. input 이벤트를 사용하면 쉽게 처리가 가능하다. 아직 이벤트를 다루지 않았으나 이 부분은 응용이 필요없는 고정 해결책이기에 이곳에서 기술한다.
Copy < input type = "text" v-model = "text" v-on:input = "text = $event.target.value" >
Copy <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>v-model example</title>
<style>
input {
font-size: 20px;
padding: 0.75em;
display: block;
margin:0.5em 0;
}
</style>
</head>
<body>
<div id="app">
<input type="text" v-model="text" v-on:input="text = $event.target.value">
<div>{{text}}</div>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
const app = Vue.createApp({
data(){
return {
text : ""
};
}
});
app.mount("#app");
</script>
</body>
</html>
한글을 포함한 모든 입력이 정상적으로 수행되는 것을 확인할 수 있다.