最近利用Vue和element ui仿写了个小页面,记一哈分页和搜索功能的简单实现。

首页   emmmm.....

搜索框输入.....

搜索完成

数据是直接写在这里面的:

  1. cardPhoto:[
  2. {
    name: '少女风十足!可爱萌妹子',
  3. href: '/details',
  4. img: require('@/assets/1/1.jpg'),
  5. time: '2019-09-22',
  6. },
  7. .........
    .........
    .........
  8. ]

element ui 中的分页

  1. <!--分页-->
  2. <div class="block">
  3. <el-pagination
  4. background
  5. :current-page.sync="currentPage"
  6. :page-sizes="[3, 6, 9, 12]"
  7. :page-size="num"
  8. layout="total, sizes, prev, pager, next, jumper"
  9. :total="cardPhoto.length"
  10. @size-change="handleSizeChange"
  11. @current-change="handleCurrentChange">
  12. </el-pagination>
  13. </div>
  14.  
  15. data() {
  16. return {
  17. num: 3, //每页显示
  18. currentPage: 1, //当前页
  19. }
  20. }
  21.  
  22. methods : {
  1. //每页条数
    handleSizeChange(val) {
    this.num = val
    },
    //当前页
    handleCurrentChange(val) {
    this.currentPage = val
    },
  1. }

主页照片:

  1. <div class="card"> <!--当前页-1*每页数,当前页*每页数-->
  2. <div class="card-box" v-for="card in cardPhoto.slice((currentPage-1)*num, currentPage*num)" :key="card">
  3. <div class="card-img">
  4. <a href="javascript:void(0);" @click="routeGo(card)"><img :src="card.img" width="270px"/></a>
  5. <div class="info">
  6. <el-row><a href="javascript:void(0);" @click="routeGo(card)">{{card.name}}</a></el-row>
  7. <time class="time">{{ card.time }}</time>
  8. </div>
  9. </div>
  10. </div>
  11. </div>

实现分页的关键:

  1. cardPhoto.slice((currentPage-1)*num, currentPage*num)
  2.  
  3. v-for对小盒子遍历时进行对应显示
    slice()方法提取某个数组的一部分,并返回一个新的数组,且不会改动原数组比如当前页是第一页,每页仨数据,那就提取(1-1*31*3) => (0,3)也就是索引 012的数据
    因为起止参数包括开始索引,不包括结束索引。
    至此分页已成。,。
  4.  
  5. 搜索栏:
  1. <input class="seach-input" type="text" aria-placeholder="搜一搜,看一看" v-model="search"/>
  2. <button class="search-btn" type="submit" @click="searchCont">搜索</button>

别忘了在data() 下添加 search: ' ',

  1. // 搜索
  2. searchCont() {
  3. var search = this.search
  4. if(search) {
  5. this.cardPhoto = this.cardPhoto.filter((cardPhoto) => {
  6. return String(cardPhoto.name).indexOf(search) !== -1
  7. })
  8. }else {
  9. history.go(0)
  10. }
    this.search = ''
  11. },

filert  把Array的某些元素过滤掉,然后返回剩下的元素。

具体去: https://www.liaoxuefeng.com/wiki/1022910821149312/1024327002617536

stringObject.indexOf( )

indexOf()返回()中出现的位置,没有返回-1,所以  只输出   !==  -1的值,

输入cardPhoto.name里的值就可以搜索了,。,

具体去:https://www.w3school.com.cn/jsref/jsref_indexOf.asp

  1. history.go(0) 输入框中空 点击搜索,页面刷新(这种方法不是太好,练习可用)
  2.  
  3. 有不足和错误,请指正。
  4.  
  5. 生命不息,折腾不止。
    我就要这几个杯子里的中杯 --
    罗老师别这样 !--

Vue下简单分页及搜索功能的更多相关文章

  1. 原生javascript实现分页效果+搜索功能

    一.概述 首先,我们要明确为何需要分页技术,主要原因有以下: 1.分页可以提高客户体验度,适当地选择合适的数据条数,让页面显得更有条理,使得用户体验感良好,避免过多数据的冗余. 2.提高性能的需要. ...

  2. java简单的实现搜索框的下拉显示相关搜索功能

    最近做了一个简单的搜索框下面下拉显示相关搜索的功能,有点模仿百度的下拉展示相关搜索 先上个展示图 : 点击进入演示地址,大家可以输入长点的搜索,点击搜索,再输入之前搜索词的前面部分,看是否能展示出来 ...

  3. ElasticSearch(五):简单的ElasticSearch搜索功能

    这里主要是一些简单的ElasticSearch的搜索功能,复杂的搜索,比如过滤,聚合等以后单独在写 1. 搜索全部 GET book/_search 直接搜索全部,下面是对搜索结果的详细介绍:默认情况 ...

  4. jQuery的select2下拉框的搜索功能(使用select2插件,方便简单)

    第一步: 引入我们用使用的插件 jquery: select2: css: js: 第二步: 创建一个html页面,body内容: <div> <select class=" ...

  5. 用vue实现简单分页

    在这个demo中,我用vue对一个json文件中的数据进行了简单的分页,没用用到交互,一下是我的实现过程. 基础逻辑 1.将json文件引入app.vue,并作为data返回 data(){ var ...

  6. yii2下拉框带搜索功能

    简单的小功能,但是用起来还是蛮爽的.分享出来让更多的人有更快的开发效率,开开心心快乐编程.作者:白狼 出处:http://www.manks.top/yii2_dropdown_search.html ...

  7. 用vue实现简单实时汇率计算功能

    最近在自己摸索vue的使用,因为相对于只是去看教程和实例,感觉不如自己动手写一个demo入门来的快.刚好看到小程序中有一个简单但是很精致的应用极简汇率,而且它的表现形式和vue的表现形式很像,于是想着 ...

  8. 使用node+vue实现简单的WebSocket聊天功能

    最近学习了一下websocket的即时通信,感觉非常的强大,这里我用node启动了一个服务进行websocket链接,然后再vue的view里面进行了链接,进行通信,废话不多说,直接上代码吧, 首先, ...

  9. Vue几行代码实现搜索功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. codevs 1126 数字统计 2010年NOIP全国联赛普及组 x

    题目描述 Description 请统计某个给定范围[L, R]的所有整数中,数字2出现的次数. 比如给定范围[2, 22],数字2在数2中出现了1次,在数12中出现1次,在数20中出现1次,在数21 ...

  2. 157. [USACO Nov07] 奶牛跨栏(第三次考试大整理)

    157. [USACO Nov07] 奶牛跨栏 输入文件:hurdles.in   输出文件:hurdles.out   简单对比 时间限制:1 s   内存限制:128 MB 译 by CmYkRg ...

  3. Elastic-Job介绍

    1 什么是分布式任务调度 什么是分布式?当前软件的架构正在逐步转变为分布式架构,将单体结构分为若干服务,服务之间通过网络交互来完成用户的业务处理,如下图,电商系统为分布式架构,由订单服务.商品服务.用 ...

  4. ex1.c 补

    表达式和符号运用生疏 经常少符号 

  5. (C#- 多线程) 在线程中创建object,共享问题。

    研究如下问题: 1. 在一个进程的主线程中创建一个Object,其他线程都可以访问这个Object,并操作Object的方法. - 多线程同步问题. 2. 在一个进程的多个线程里面,每个线程都创建同一 ...

  6. Spring Boot教程(十六)属性配置文件详解(1)

    相信很多人选择Spring Boot主要是考虑到它既能兼顾Spring的强大功能,还能实现快速开发的便捷.我们在Spring Boot使用过程中,最直观的感受就是没有了原来自己整合Spring应用时繁 ...

  7. linux系统安装Oracle11g详细步骤

    快速安装指引 ■Reviewing Information About This Guide■Logging In to the System as root 以root用户登录系统■Checking ...

  8. 通过jedis连接redis单机成功,使用redis客户端可以连接集群,但使用JedisCluster连接redis集群一直报Could not get a resource from the pool

    一,问题描述: (如题目)通过jedis连接redis单机成功,使用JedisCluster连接redis集群一直报Could not get a resource from the pool 但是使 ...

  9. 通过构造器配置Bean

    public class Role { private Log id; private String roleName; private String note; public Role(String ...

  10. 项目三、文件上传器v1.1

    /** * 自定义文件上传工具 v1.1 * @param url 路径 */ function fileUploader(url) { var _date = new Date(); //日期 th ...