zoukankan      html  css  js  c++  java
  • Vue 使用Vant中list实现懒加载

    Vant的初次使用

    应用vant中list实现懒加载

    vant-list

    首先npm 下载 ,使用的是需要什么导入什么

    // 对于使用 babel7 的用户,可以在 babel.config.js 中配置
    module.exports = {
      plugins: [
        ['import', {
          libraryName: 'vant',
          libraryDirectory: 'es',
          style: true
        }, 'vant']
      ]
    };
    

    然后使用需要的组件,这儿用的是list,实现懒加载

    然后使用指南创建 vant-list

    <template>
      <div>
        <van-list
           <--查看api文档-->
          v-model="loading"
          :finished="finished"
          finished-text="wdnmd,没数据了别刷了"
          @load="onLoad"			
          :immediate-check ='false'   //这里记得加:是否在初始化时立即执行滚动位置检查 不加的话,开始页面就会直接判断滚动完成
        >
          <van-cell
            v-for="data in datalist"
            :key="data.filmId"
            @click="handleChangePage(data)"
          >
              <img :src="data.poster" alt="" />
              <p>{{ data.name }}</p>
              <p>主演:{{ data.actors | actorsFilter }}</p>
          </van-cell>
        </van-list>
      </div>
    </template>
    

    在js中引入vant

    没使用全局,用到了什么就引入什么

    import Vue from "vue";
    //import axios from "axios";
    import http from "@/util/http.js";
    import { List, Cell } from "vant";
    
    Vue.use(List).use(Cell);
    

    将vant里面的参数进行初始化

    data() {
        return {
          datalist: [],
          loading: false, //是否正在加载中,防止多次触发
          finished: false,
          current: 1, //记录第几页
          total: 0, //记录全部的数据
        };
      },
    
    load 滚动条与底部距离小于 offset 时触发

    通过这个事件 可以判断最底部之后,我们需要执行的异步判断

    1.ajax请求页面
    2.合并新数据到老数据下面
    3.让this.loading=false
    4.判断请求到的所有 数据是否等于总数,等于停止加载 给this.finished=true

     onLoad() {
          // 1.ajax请求页面
          // 2.合并新数据到老数据下面
          // 3.让this.loading=false
         
          // 4.判断请求到的所有 数据是否等于总数,等于停止加载 给this.finished=true
          if (this.datalist.length === this.total) {
            this.finished = true;
            return;
          }
          this.current++;
          http({
            url: `/gateway?cityId=430100&pageNum=${this.current}&pageSize=10&type=1&k=5998332`,
            headers: {
              "X-Host": "mall.film-ticket.film.list",
            },
          }).then((res) => {
             //写法,将两个数组合并
            this.datalist = [...this.datalist, ...res.data.data.films];
              //因为到了最底部,load事情会将 loading变为true,但是数据没加载完,所以要重新改为false
            this.loading = false;
          });
        },
      },
    

    需要看懂API文档,任重而道远,加油~~~

  • 相关阅读:
    AUC ROC PR曲线
    L1,L2范数和正则化 到lasso ridge regression
    目标函数和损失函数
    logistic回归和线性回归
    [转]如何处理不均衡数据?
    将Maven项目打包成可执行 jar文件(引用第三方jar)
    Postgresql VACUUM COPY等
    linux安装xgboost
    java社区推荐
    rabbitmq-java api
  • 原文地址:https://www.cnblogs.com/Ssinoo/p/14053403.html
Copyright © 2011-2022 走看看