【发布时间】:2019-01-31 05:46:37
【问题描述】:
我有一个名为 App.vue 的主要组件和一个名为 MyTable.vue 的子组件,它包含一个数据表并仅显示前 10 行,我是使用 vue cli 3,当我运行 npm run serve 命令并转到给定地址时,它只呈现我的表的 head,但是当我在 mounted() 函数里面添加一些代码时MyTable.vue 和 console.log() 一样,它也渲染了我的表格的主体,当我刷新页面时问题又回来了,我该如何处理?
这些是我的组件
App.vue
<template>
<div class="main-page">
<my-table title="todos" :cols="todo_attr" :rows_data="todo_data"></my-table>
</div>
</template>
<script>
import MyTable from './components/MyTable.vue'
import todos from './assets/todos.json'
export default {
name: 'app',
data(){
return{
todo_attr:[
"todoId","id","title","completed"
],
todo_data:[]
}
},
components: {
MyTable
},
mounted(){this.todo_data=todos;}
}
</script>
MyTable.vue
<template>
<div class="vet-container">
<table>
<thead>
<th class="tab-head-cell" v-for="col in cols" :key="col">{{col}}</th>
</thead>
<tbody>
<tr class="tab-rows_data-row" v-for="row in currentPageData" :key="row.id">
<td class="tab-rows_data-cell" v-for="(cell,key,index) in row" :key="key+index" > {{cell}}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
export default {
name: 'my-table',
props: {
title: String,
cols: {},
rows_data: {}
},
data() {
return {
currentPageData: {}
};
},
methods:{
createFirstPage(){
this.currentPageData = this.rows_data.slice(0, 10);
}
}
,
mounted() {
this.createFirstPage();
}
}
</script>
【问题讨论】:
-
待办事项列表可以通过这个链接找到:todos
标签: javascript vue.js vuejs2 vue-component vue-cli