vue.jsにて、生年月日をSELECT要素で表示する処理を調べながら実装していたのですが、一点疑問な点があり質問させて貰いました。
<template> <div> <p>性別</p> <input type="radio" value="man" id="man" name="gender" v-model="gender"> <label for="man">男性</label> <input type="radio" value="woman" name="gender" v-model="gender"> <label for="man">女性</label> <p>生年月日</p> <select id="year" v-model="year"> <option v-for="nengo in nengoes" :key="nengo.year" :value="nengo.year">{{ nengo.label }}</option> </select> <label>年</label> <p>test:{{ gender }}</p> </div> </template> <script> export default { data() { return { gender: '', year: 1990, month: 1, date: 1, days_max: '', nengoes: [] } }, mounted() { this.nengoes = this.genereate() }, methods: { genereate() { const nengoes = [] for (let y = 2021; y > 1920; y--) { if (y > 2018) { nengoes.push({ year: y, label: `${y} (令和${y - 2018}年)` }) } else if (y > 1988) { nengoes.push({ year: y, label: `${y} (平成${y - 1988}年)` }) } else if (y > 1925) { nengoes.push({ year: y, label: `${y} (昭和${y - 1925}年)` }) } else if (y > 1911) { nengoes.push({ year: y, label: `${y} (大正${y - 1911}年)` }) } } return nengoes } } } </script>
data()
内のyear: 1990
の値をyear: 2020
などと変更すると、初期のセレクトボックスの表示は「2020(令和)」と変更されて表示されます。
こちら:value="nengo.year"
はnengoes
配列から参照している為、year
の値を変更しても、配列の最初のインデックスを参照している為、影響がないと思うのですが、何故、和暦が変更されて表示されるのでしょうか。
こちらの疑問点につきまして、どなたかご助言頂けましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/31 13:35
2021/01/31 14:13
2021/01/31 22:19
2021/02/01 01:02 編集
2021/02/01 01:18
2021/02/01 01:30
2021/02/01 01:32
2021/02/01 01:37