猿问

Vue Js:如何在 Vue 数据表组件中添加序列号列

我正在使用组件在我的应用中显示数据表。有没有办法在此数据表中添加序列号列。从1到我的文章数组的长度开始。<v-data-table>

如果任何带有任何id的文章首先出现,它应该从1开始。


叮当猫咪
浏览 173回答 1
1回答

达令说

没有内置的方法来执行此操作,但是您可以通过添加计算属性并使用方法向每个项目添加新属性来实现它,例如 ,它代表序列号。您可以根据需要重命名它。.map()snocomputed: {&nbsp; &nbsp;itemsWithSno() {&nbsp; &nbsp; &nbsp; return this.desserts.map((d, index) => ({ ...d, sno: index + 1 }))&nbsp; &nbsp;}},接下来,只需在标头数组中添加一个新列即可映射此新属性,如下所示:{&nbsp; &nbsp;text: 'Serial #',&nbsp; &nbsp;value: 'sno'},此处的值需要与在计算属性中添加的新属性名称完全相同。sno接下来,只需更新 prop 以使用计算属性,而不是原始数组,如下所示:v-data-tableitemsitemsWithSno<v-data-table :headers="headers" :items="itemsWithSno"></v-data-table>就是这样。工作演示:new Vue({&nbsp; el: '#app',&nbsp; vuetify: new Vuetify(),&nbsp; computed: {&nbsp; &nbsp; itemsWithSno() {&nbsp; &nbsp; &nbsp; return this.desserts.map((d, index) => ({ ...d, sno: index + 1 }))&nbsp; &nbsp; }&nbsp; },&nbsp; data() {&nbsp; &nbsp; return {&nbsp; &nbsp; &nbsp; headers: [{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text: 'Serial #',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value: 'sno'&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text: 'Dessert (100g serving)',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; align: 'start',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sortable: false,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value: 'name',&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text: 'Calories',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value: 'calories'&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; text: 'Fat (g)',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value: 'fat'&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; &nbsp; desserts: [{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: 'Frozen Yogurt',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; calories: 159,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fat: 6.0&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: 'Ice cream sandwich',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; calories: 237,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fat: 9.0&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: 'Eclair',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; calories: 262,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fat: 16.0&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: 'Cupcake',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; calories: 305,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fat: 3.7&nbsp; &nbsp; &nbsp; &nbsp; },&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name: 'Gingerbread',&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; calories: 356,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fat: 16.0&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; ],&nbsp; &nbsp; }&nbsp; },})<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet"><link href="https://cdn.jsdelivr.net/npm/@mdi/font@5.x/css/materialdesignicons.min.css" rel="stylesheet"><link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script><div id="app">&nbsp; <v-app>&nbsp; &nbsp; <v-main>&nbsp; &nbsp; &nbsp; <v-container>&nbsp; &nbsp; &nbsp; &nbsp; <v-data-table :headers="headers" :items="itemsWithSno" class="elevation-1">&nbsp; &nbsp; &nbsp; &nbsp; </v-data-table>&nbsp; &nbsp; &nbsp; </v-container>&nbsp; &nbsp; </v-main>&nbsp; </v-app></div>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答