自訂表格怎麼取值vue
在Vue.js中,表格是使用v-for指令循環渲染出來的。一旦表格中存在自訂資料(例如下拉列錶框、單選按鈕、多重選取框等),則需要一種方便的方法來從表格中取得這些自訂資料的值。在本文中,我們將介紹如何在Vue.js中取得自訂表格的值。
首先,我們需要了解Vue.js元件的生命週期,因為自訂表格通常包含一個元件。 Vue.js元件有9個生命週期函數,分別是:
beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、destroyed、errorCaptured
其中,我們將使用created和mounted兩個生命週期函數來實現自訂表格的取值。
created() { this.headers = [ { text: 'Name', value: 'name' }, { text: 'Age', value: 'age' }, { text: 'Gender', value: 'gender' }, { text: 'Hobby', value: 'hobby' } ] this.items = [ { name: 'John', age: 25, gender: 'Male', hobby: 'Basketball' }, { name: 'Mary', age: 30, gender: 'Female', hobby: 'Singing' }, { name: 'David', age: 28, gender: 'Male', hobby: 'Dancing' }, { name: 'Rachel', age: 22, gender: 'Female', hobby: 'Reading' } ] }
mounted() { this.getSelectedValues = function() { let items = this.$refs.table.getSelectedItems() let selectedValues = [] for (let item of items) { selectedValues.push(item.hobby) } return selectedValues } }
此程式碼中,我們呼叫$refs.table.getSelectedItems()函數來取得選取的資料項。然後,我們使用for迴圈來遍歷選定的資料項,並將它們的hobby屬性值加到selectedValues陣列中,最後傳回該陣列。
<v-data-table :headers="headers" :items="items" ref="table"> <template v-slot:item.hobby="{ item }"> <v-select v-model="item.hobby" :items="hobbies" ref="hobby" label="Hobby"></v-select> </template> <template v-slot:body> <tbody> <tr v-for="(item, index) in items" :key="index" v-bind:style="[ index % 2 == 0 ? { background: '#f2f2f2' } : {} ]"> <td>{{ item.name }}</td> <td>{{ item.age }}</td> <td>{{ item.gender }}</td> <td><v-select v-model="item.hobby" :items="hobbies" label="Hobby"></v-select></td> </tr> </tbody> </template> </v-data-table>
在這個範例中,我們使用了v-select元件作為自訂資料。若要引用DOM元素,您需要將ref屬性新增至v-select元素中。我們也示範如何在表格中新增v-select列。最後,我們在v-select元素中新增了v-model指令,以便可以雙向綁定使用者的選擇。
總結
Vue.js中的自訂表格可以為我們提供更多的靈活性,以呈現和處理更多的資料和資訊。使用Vue.js的特性,我們可以輕鬆地從自訂表格中取得和處理資料。在本文中,我們使用created和mounted兩個生命週期函數來實現自訂表格的值的取得。我們也介紹如何使用$refs屬性來引用DOM元素。
以上是自訂表格怎麼取值vue的詳細內容。更多資訊請關注PHP中文網其他相關文章!