前提・実現したいこと
vue.jsを用いて、フォームに入力したフルネームを姓と名に分けて表示するリアクティブシステムを作成しています。
下記のコードは実行時正常に表示されますが、既に入力されている名前(下記コードの場合は" 太郎")を消去すると、"テスト"という文字列が自動で補完されてしまいます。
この振る舞いに関して詳しい原因が分かる方がいらっしゃいましたら、ご教示いただきたいです。
該当のソースコード
html
1<div id="app"> 2 <input type="text" v-model="fullName"/> 3 <div>fullName :{{fullName}} </div> 4 <div>firstName:{{firstName}}</div> 5 <div>lastName :{{lastName}}</div> 6</div> 7 8<script> 9 let vm = new Vue({ 10 el : '#app', 11 data(){ 12 return { 13 firstName:'テスト', 14 lastName:'太郎' 15 } 16 }, 17 //算出プロパティ 18 computed:{ 19 fullName:{ 20 get(){ 21 return this.firstName + ' ' + this.lastName 22 }, 23 set(val){ 24 let names = val.split(' ') 25 this.firstName = names[0] 26 this.lastName = names[names.length -1] 27 } 28 } 29 } 30 }) 31</script>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/17 05:35