首页 > 其他分享 >: 搜索功能实现 - 搜索结果组件的封装 - 上拉加载

: 搜索功能实现 - 搜索结果组件的封装 - 上拉加载

时间:2022-10-20 20:22:05浏览次数:80  
标签:loading 封装 list 搜索 上拉 keywords false data page

传值 keywords 

<template>
  <van-list
    v-model="loading"
    :finished="finished"
    finished-text="没有更多了"
    @load="onLoad"
  >
    <van-cell v-for="(item, index) in list" :key="index" :title="item.title" />
  </van-list>
</template>

<script>
import { getSuggestApi } from "@/api/Search";
export default {
  data() {
    return {
      list: [],
      loading: false,
      finished: false,
      page: 1,
      per_page: 10,
    };
  },
  created() {
    console.log(this.keywords);
  },
  props: {
    keywords: {
      type: String,
      required: true,
    },
  },
  methods: {
    async onl oad() {
      // 1.发送请求数据
      const { data } = await getSuggestApi({
        page: this.page,
        per_page: this.per_page,
        q: this.keywords,
      });
      //   console.log(data);
      // 2. 将数据追加到列表中
      this.list.push(...data.data.results);
      console.log(this.list);
      //   3. 关闭loading
      this.loading = false;
      // 4. 判断是否结束
      if (this.list.length < data.data.total_count) {
        // 还有数据没有加载完,继续请求数据
        this.page++;
      } else {
        // 没有数据了,结束onLoad函数
        this.finished = true;
      }
    },
  },
};
</script>

<style>
</style>

 

标签:loading,封装,list,搜索,上拉,keywords,false,data,page
From: https://www.cnblogs.com/zhulongxu/p/16811138.html

相关文章

  • 封装详解
    封装如何封装定义属性时,定义为私有的:publicclassStudent{privateStringname;privateintage;} 我们使用get、set方法设置属性:publicclassS......
  • 6-1 是否二叉搜索树
    本题要求实现函数,判断给定二叉树是否二叉搜索树。函数接口定义:boolIsBST(BinTreeT);其中BinTree结构定义如下:typedefstructTNode*Position;typedefPosition......
  • 二叉搜索树的最近公共祖先
    一.递归publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(root.val<p.val&&root.val<q.val)return......
  • 封装图这一种数据结构
    1、写了模板类,模板函数的定义需要写在.h文件中。2、一个bool类型是1字节,然后都是用指针来声明数组大小,所以memset(exit,false,(sizeofexit)),错误,因为sizeof指针得到的是4......
  • 怎么封装axios
    首先,单独创建一个request的js文件,导入axios然后,创建axios实例request=axios.create可以写基本地址,超时时间等;后面可以添加拦截器,可以在请求拦截器统一添加token,规......
  • 做题记录整理图论/最短路/dp/记忆化搜索 P3953 [NOIP2017 提高组] 逛公园(2022/10/19)
    P3953[NOIP2017提高组]逛公园https://122720.blog.luogu.org/p3953-ti-xie-ji-yi-hua-sou-suo大佬讲得挺好的,我就不写了#include<bits/stdc++.h>#definefor1(i,a,b......
  • 【Java复健指南06】OOP中级01-封装、继承、super
    注:从OOP中级部分开始使用IDEA构建代码封装封装的实现步骤1)将属性进行私有化private【不能直接修改属性】2)提供一个公共的set方法,用于对属性判断并赋值publicvoids......
  • 用Typescript 的方式封装Vue3的表单绑定,支持防抖等功能。
    Vue3的父子组件传值、绑定表单数据、UI库的二次封装、防抖等,想来大家都很熟悉了,本篇介绍一种使用Typescript的方式进行统一的封装的方法。基础使用方法Vue3对于表单的绑......
  • el-upload多文件上传组件封装
    文件多次上传,保留进度条<template><divclass="upload-file"><el-upload:action="uploadFileUrl":on-success="handleUploadSuccess"......
  • 封装一个echart字体大小自适应函数
    //自适应echart字体大小exportconstfontSize=(res)=>{letclientWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clien......