Vue.js仿Metronic高级表格(二)数据渲染
一、背景介绍
在之前的文章中,我们已经介绍了需求、原型设计以及静态页面的实现。本文将重点讲解如何使用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
修改
删除
```
这里的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')
这不仅仅是一行代码,更是我们对技术与艺术的追求与热爱。希望这能引起大家的共鸣,激发更多的创意与灵感。
微信营销
- Vue.js仿Metronic高级表格(二)数据渲染
- vue 实现通过手机发送短信验证码注册功能
- 编程界主流脚本编程语言的比较和选择
- asp.net的加密解密技巧
- 原生JS实现移动端web轮播图详解(结合Tween算法造
- jQuery修改class属性和CSS样式整理
- JS中如何轻松遍历对象属性的方式总结
- 移动端滑动切换组件封装 vue-swiper-router实例详解
- Node.js+jade抓取博客所有文章生成静态html文件的实
- 使用canvas进行图像编辑的实例
- PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实
- php中照片旋转 (orientation) 问题的正确处理
- JavaScript运动框架 链式运动到完美运动(五)
- Javascript在IE和Firefox浏览器常见兼容性问题总结
- 获取JavaScript异步函数的返回值
- PHP异常处理Exception类