小白入门---Vue无限滚动(vue-infinite-scroll)
2017-09-27 21:08
941 查看
Vue无限滚动(vue-infinite-scroll)
1.安装插件1.npm i vue-infinite-scroll –save:安装vue-infinite-scroll插件并且会将包的名称及版本号放在dependencies里面
2.D就是–save-dev 这样安装的包的名称及版本号就会存在package.json的devDependencies这个里面,而–save会将包的名称及版本号放在dependencies里面《上线需要依赖的我们都需要写在dependencies里面》
2.使用插件
import infiniteScroll from 'vue-infinite-scroll' Vue.use(infiniteScroll)
3.在组件中使用插件
使用v-infinite-scroll=”loadMore”当页面触发到底部的时候 执行这个函数,并使用infinite-scroll-disabled=”busy”判断当滚动满足条件后是否执行loadMore函数,使用infinite-scroll-distance=”x”距离底部多远然后执行loadMore。
<div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10"> ... </div>
<script> import HeadNav from '@/components/Head'//引入组件并重命名 import NavBread from '@/components/NavBread'//引入组件并重命名 import Footer from '@/components/Foot'//引入组件并重命名 import axios from 'axios'//引入axios export default{ data(){ return{ list:[],//显示商品的列表 sortFlog:true,//默认是按照正序价格排列 priceChecked:'all',//默认选中的价格范围 busy:true,//默认允许滚动执行loadMore函数 page:1,//默认分页为第一页 pageSize:8,//默认每页显示8条数据 flag:false,//默认没有分页 priceFilter:[//价格过滤器 { startPrice:'0', endPrice:'100' }, { startPrice:'1000', endPrice:'500' }, { startPrice:'5000', endPrice:'1000' }, { startPrice:'1000', endPrice:'5000' } ] } }, components:{//组件 HeadNav, NavBread, Footer, }, created(){ this.getGoods() }, methods:{ getGoodsList() { axios.get("http://easy-mock.com/mock/59664d4d58618039284c7710/example/goods/list").then(res=>{ res=res.data.data; // this.list=res; }) }, getGoods(flag){ let sort=this.sortFlog?1:-1; let param={ sort:sort, priceLevel:this.priceChecked, page:this.page, pageSize:this.pageSize } axios.get('/goods/list',{params:param}).then(res=>{ // this.list= res.data.result; if(flag){//判断是否通过分页 this.list=this.list.concat(res.data.result);//分页数据追 9c53 加到这个list里面 if(res.data.result.length==0){//判断数是否加载完成,就让数据截停 this.busy=true; }else{ this.busy=false; } }else{ this.list=res.data.result; this.busy=false; } console.log(res.data.result); }) }, sortGoods(){ this.sortFlog=!this.sortFlog; this.getGoods(); }, setPriceFilter(index){ this.priceChecked=index; this.page=1; this.getGoods(); }, loadMore:function () { this.busy=true; setTimeout(()=>{ this.page++; this.getGoods(true); },500) } } } </script>
相关文章推荐
- 使用vue-infinite-scroll实现无限滚动效果
- AngularJS 无限滚动加载数据控件 ngInfiniteScroll
- vue滚动加载插件vue-infinite-scroll
- AngularJS 无限滚动加载数据控件 ngInfiniteScroll
- AngularJS 无限滚动加载数据控件 ngInfiniteScroll
- 无限滚动插件infinite-scroll介绍
- 【无限滚动加载数据】—infinite-scroll插件的使用
- infinite-scroll插件无限滚动加载数据的使用
- 【无限滚动加载数据】—infinite-scroll插件的使用
- 【无限滚动加载数据】—infinite-scroll插件的使用---------下拉加载数据、无线滚动
- 【无限滚动加载数据】—infinite-scroll插件的使用
- AngularJS 无限滚动加载数据控件 ngInfiniteScroll
- jquery.infinitescroll无限加载插件
- vue使用Better-Scroll实现纵向滚动
- Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
- vue中渲染数据可能有一个无限更新循环--You may have an infinite update loop in a component render function.
- infinite-scroll 滚动不停止
- Vue scrollBehavior 滚动行为
- AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
- vue小白入门教程