v-model
不僅僅只能綁定到 Textbox,也可以綁定到單一 Select,當在 HTML 改變 Select 狀態時,JavaScript 也會連動改變 State。
Version
Vue 3.4
Composition API
<template>
<select v-model="selected">
<option disabled value="">Please select one</option>
<option value="0">Apple</option>
<option value="1">Google</option>
<option value="2">Microsoft</option>
</select>
<div>{{ selected }}</div>
</template>
<script setup>
import { ref } from 'vue'
let selected = ref('')
</script>
- 下拉選單,最外層使用
<select>
,內層選項使用<option>
- v-model:直接將
<select>
綁定到checked
state,任何在 HTML 對 state 變動會連動 JavaScript,任何在 JavaScript 對 state 變動也會連動 HTML
Line 3
<option disabled value="">Please select one</option>
- 無法被選,僅能用來提示的
<option>
要加上disabled
attribute - value:
<option>
欲綁定的值
Line 14
let selected = ref('')
- 單選 Select 的綁定值為 String
Options API
<template>
<select v-model="selected">
<option disabled value="">Please select one</option>
<option value="0">Apple</option>
<option value="1">Google</option>
<option value="2">Microsoft</option>
</select>
<div>{{ selected }}</div>
</template>
<script>
export default {
data: () => ({
selected: ''
})
}
</script>
- 最後附上相同功能的 Options API 供參考
- State 宣告在
data()
function v-model
使用上不變
Conclusion
- Select 一樣可以使用
v-model
綁定 - 單選 Select 綁定值是 String,可透過
value
attribute 改變其綁定值