Vue.js仿Metronic高级表格(二)数据渲染

网络营销 2025-04-25 02:12www.168986.cn短视频营销

一、背景介绍

在之前的文章中,我们已经介绍了需求、原型设计以及静态页面的实现。本文将重点讲解如何使用Vue进行数据渲染,以实现动态展示。

我们需要定义一个数组来保存所有数据。这里我们使用Vue实例来定义数据:

```javascript

var vm = new Vue({

el: 'content',

data: {

book_list: [

{id: 1, name: "标准日本语", type: "文化", price: 19.00, time: },

{id: 2, name: "微观经济学", type: "经济", price: 29.00, time: },

{id: 3, name: "大数据时代", type: "经济", price: 39.00, time: },

{id: 4, name: "TCP/IP协议详解", type: "科技", price: 49.00, time: },

{id: 5, name: "大学英语", type: "文化", price: 59.00, time: }

]

}

});

```

三、数据渲染

```html

{{ key + 1 }}

{{ book.name }}

{{ book.type }}

{{ book.price }}

{{ book.time }}

```

这里的v-for指令用于遍历book_list对象,将元素赋值给book,索引赋值给key,并使用元素渲染该tr标签。值得注意的是,我们使用了v-text指令来设置文本值,以避免闪烁问题。在Vue 2.0中,需要显式声明索引,如上述代码中的"(book, key) in book_list",其中key可以作为$index使用。

四、数据格式调整

完成数据渲染后,我们还需要对价格和时间进行格式调整。在Vue 1.0中,我们可以使用过滤器来进行格式调整,如:{{book.price | currency}}。但在Vue 2.0中,默认过滤器已被废弃,我们需要自定义过滤器并注册到Vue对象中。关于过滤器的具体使用方法,可以参考Vue官方文档。

一、货币和日期过滤器

Vue中,我们定义了两个过滤器,一个用于处理日期,另一个用于格式化货币。

而对于货币过滤器,我们称之为“currency”。它可以接收金额、货币单位和精度作为输入,将金额格式化为带有两位小数的货币格式。如果没有提供单位或精度,它会默认为人民币单位和两位小数精度。这样,展示商品价格时,只需使用“{{price | currency}}”即可。

三、分页展示

渲染页码列表时,我们需要先获取总页数,以确保后续的关键词过滤等功能能够顺畅运行。我们将使用计算属性来获取总页数,即使不足一页也要当作一页显示。

计算属性的实现如下:

```javascript

computed: {

totalPages: function() {

let length = this.bookList.length;

let total = parseInt(length / this.pageSize);

if (length % this.pageSize !== 0) {

total++;

}

return total < 1 ? 1 : total;

}

}

```

接下来,我们将使用v-for指令来渲染页码列表,参考Bootstrap的页码HTML样式,我们可以轻松地完成这一任务。

HTML结构如下:

```html

```

值得注意的是,这里使用了两个重要的Vue指令:

1. `@click`:用于绑定点击事件,可以执行函数或JS代码。

2. `:class`:用于绑定class属性,根据条件来决定是否设置某个样式。此处选择不使用v-show是因为v-show的效果不太符合我们的需求。为何不用v-show是因为切换效果不够理想,存在闪烁等问题。我们选择使用`:class`来实现样式的动态绑定。我们还可以自定义页容量,只需稍微改造一下页码下拉框即可。HTML代码如下:选择下拉框用于自定义页容量。当用户在下拉框中选择不同的页容量时,总页数会发生变化,但不会低于当前页数值。这是因为我们使用了双向绑定的v-model指令将select的value与page_size绑定在一起。代码如下:JavaScript代码计算总页数,同时确保不会低于当前页数。这种处理方式使得页面逻辑更加流畅,用户体验更加友好。我们还可以自定义页容量以适应不同用户的需求。用户可以通过下拉框选择他们想要的每页显示的条目数量。这些功能共同构建了一个强大而灵活的页面分页系统。这个分页系统的实现充分利用了Vue的强大特性,使得页面逻辑清晰、易于理解、用户体验友好且功能强大。通过合理地使用计算属性、动态绑定等技巧,我们成功地实现了这一功能丰富的分页系统。获取总页数时的页面微调艺术

在浏览书籍或翻阅资料时,我们总会遇到一个关键步骤:计算总页数并确定当前页的位置。这不仅关乎我们的阅读体验,更是程序设计中的一个重要环节。下面,让我们一同如何在编程中实现这一功能。

total_page函数:它负责计算总页数并进行页面调整。它获取书籍列表的长度,然后根据每页显示的内容数量来计算总页数。如果书籍列表的长度不能被每页显示的内容数量整除,那么总页数就要加1,以确保所有内容都能被展示。接下来,它会检查当前页码是否超出了总页数或者低于第一页,如果是的话,就会将当前页码调整为合理的数值。返回总页数,如果总页数小于1,则返回1。这是一个贴心的设计,确保用户始终从第一页开始,或者在合理的范围内浏览。

在这个智能计算的过程中,我们的程序设计仿佛拥有了一种美学观念:平衡与和谐。它确保了页面的流畅展示,避免了因页码错误导致的用户困扰。就像一幅美丽的画作,每一个细节都经过精心打磨,呈现出最佳的效果。

欣赏完这个精细设计的程序流程后,我们来看看实际效果图。简洁明了的界面设计,使得用户可以轻松地进行阅读或浏览。在这里,我们期待大家能够感受到程序设计的魅力,同时也希望大家继续支持狼蚁SEO。我们始终致力于为大家带来更好的体验和服务。

在此刻,让我们共同期待更多精彩的瞬间,一起见证技术的力量。让我们一起沉浸在这个数字的世界,感受程序设计带来的无限可能。让我们共同未知领域,创造更美好的未来。

让我们用一句代码结束这次分享:

Cambrian.render('body')

这不仅仅是一行代码,更是我们对技术与艺术的追求与热爱。希望这能引起大家的共鸣,激发更多的创意与灵感。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by