&l..._axios下拉框如何获取">
当前位置:   article > 正文

axios实现上拉下拉演示_axios下拉框如何获取

axios下拉框如何获取

  

 

官网:https://better-scroll.github.io/docs/zn-CN

 1、准备工作

在终端输入 npm i -S axios

2、html头部引用前端模板

    <script src="javascripts/template-web.js"></script>

    <script src="javascripts/axios.js"></script>

    <script src="javascripts/better-scroll.js"></script>

3、 css样式、前端DOM元素及模板 

Ajax+koa2简单实例演示_lq_1999的博客-CSDN博客

4、js

  1. <script>
  2. var sportsList = document.querySelector('.sports-list');
  3. var sports_main = document.querySelector('#sports-main');
  4. var loadingDown = document.querySelector('#loadingDown');
  5. var loadingUp = document.querySelector('#loadingUp');
  6. var nowPage = 0;//目前的页数(从0开始)
  7. var loading = document.querySelector('#loading');
  8. // betterscroll 滚动原理,前提是保证容器高度小于列表
  9. initList();
  10. function initList() {
  11. loading.innerHTML = 'loading...'
  12. axios.post('list',{
  13. page : 0,
  14. count : 8
  15. }).then((res)=> {
  16. if(res.data.errcode === 0) {
  17. setTimeout(()=>{
  18. loading.innerHTML = ''
  19. sportsList.innerHTML = template('tpl-sportsList',res.data);
  20. initBetterScroll();
  21. },500)
  22. }
  23. })
  24. };
  25. function initBetterScroll(){
  26. let bs = BetterScroll.createBScroll(sports_main,{
  27. pullDownRefresh : {
  28. threshold : 30 //触发的界限
  29. },
  30. pullUpLoad : {
  31. threshold : -20 //触发的界限
  32. }
  33. })
  34. //页面开始上拉或下拉 且没有达到触发条件时
  35. bs.on('scrollStart',()=>{
  36. loadingDown.innerHTML = '下拉刷新';
  37. loadingUp.innerHTML = '上拉加载';
  38. });
  39. bs.on('pullingDown',()=>{
  40. loadingDown.innerHTML = 'loading...';
  41. axios.post('/list',{ //post方式向后端传递参数(页面序号及数据条数)
  42. page : 0,
  43. count : 8
  44. }).then((res)=>{
  45. if(res.data.errcode === 0) {
  46. setTimeout(()=>{
  47. //在模板导入数据,将模板插入DOM中
  48. sportsList.innerHTML = template('tpl-sportsList',res.data);
  49. if(res.data.list.length){
  50. loadingDown.innerHTML = '刷新成功';
  51. }else{
  52. loadingDown.innerHTML = '到顶了';
  53. }
  54. bs.finishPullDown(); //完成下拉
  55. bs.refresh(); //刷新列表
  56. nowPage = 0; //刷新回到首页
  57. },500);
  58. }
  59. });
  60. });
  61. bs.on('pullingUp',() => {
  62. loadingUp.innerHTML = 'loading...';
  63. axios.post('/list',{ //post方式向后端传递参数(页面序号及数据条数)
  64. page : ++nowPage, //上拉操作,页面序号自增1
  65. count : 8
  66. }).then((res)=>{
  67. if(res.data.errcode === 0) {
  68. setTimeout(()=>{
  69. sportsList.innerHTML += template('tpl-sportsList',res.data);
  70. if(res.data.list.length){
  71. loadingUp.innerHTML = '加载成功';
  72. }else{
  73. loadingUp.innerHTML = '没有更多内容了';
  74. }
  75. bs.finishPullUp(); //完成上拉加载
  76. bs.refresh();
  77. },500);
  78. }
  79. })
  80. });
  81. }
  82. </script>

5、 后端/router

在头部引用

  1. const router = require('koa-router')()
  2. const fs = require('fs'); //内置方法,在下方用来引入JSON文件
  3. const axios = require('axios')

 post方式

  1. router.post('/list', async (ctx, next) => {
  2. // 参数类型设置
  3. var args = [
  4. { field: 'page',type: 'number' },
  5. { field: 'count',type: 'number' }
  6. ];
  7. // 接收到的数据
  8. const body = ctx.request.body;
  9. for (let i = 0; i < args.length; i++) {
  10. let items = args[i];
  11. // 参数个数错误
  12. if (!Object.keys(body).includes(items.field)) {
  13. ctx.body = {
  14. errcode: -1,
  15. errmsg: '参数个数错误'
  16. };
  17. return;
  18. } else {
  19. if (typeof body[items.field] !== items.type) {
  20. ctx.body = {
  21. errcode: -2,
  22. errmsg: '参数类型错误'
  23. };
  24. return;
  25. };
  26. }
  27. };
  28. let data = fs.readFileSync('./data/sports.json'); //引入JSON文件
  29. data = JSON.parse(data); //以对象的形式返回JSON
  30. let list = data.splice(body.page * body.count, body.count) //需要响应的数据
  31. ctx.body = {
  32. errcode: 0,
  33. errmsg: 'ok',
  34. list
  35. };
  36. });

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/283494
推荐阅读
相关标签
  

闽ICP备14008679号