フォーム入力バインディングを理解する その3

何年か前に jQuery で作った type tester という簡易的なフォント(関連のスタイリング)のテスターツールを Vue.js で作ってみる。 その3
GitHub Pages: https://yuheijotaki.github.io/type-tester/
GitHub リポジトリ:https://github.com/yuheijotaki/type-tester
input type="range" と input type="number" を双方向でバインドして $emit する
両方に v-model="" 指定と、 min="" / max="" に同じ値を指定すればOKでした。
input-fontSize.vue(一部簡略化)
<template>
<div>
FontSize: <input
type="range"
min="10"
max="200"
v-model="fontSize"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
>
<input
type="number"
min="10"
max="200"
v-model="fontSize"
@input="updateValue"
@focus="$emit('focus', $event)"
@blur="$emit('blur', $event)"
> px
</div>
</template>
<script>
export default {
name: 'inputFontSize',
data() {
return {
fontSize: 16,
}
},
methods: {
updateValue(e) {
this.$emit('input', e.target.value)
this.$emit('change', e.target.value)
}
}
}
</script>
次やること
font-familly:, font-weight: あたりのラジオボタンコンポーネントを実装する