亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

vue 使用vant插件做tabs切換和無限加載功能的實(shí)現(xiàn)

瀏覽:3日期:2022-11-06 11:49:11

樣例:

vue 使用vant插件做tabs切換和無限加載功能的實(shí)現(xiàn)

1.創(chuàng)建vue項(xiàng)目,不再詳述

2.引入vant

之前用過很多插件做這個(gè)功能,但是效果都不盡人意,出現(xiàn)各種問題,直到遇到vant這個(gè)插件,完美的解決了這些小問題,如有問題,歡迎聯(lián)系我

安裝依賴

npm i vant -S

在main.js中引入

import Vant from ’vant’;import ’vant/lib/index.css’;Vue.use(Vant);

3.在頁面中使用

官方寫的比我寫的好多了,大家可以借鑒,看源代碼可能比官方給的文檔更直觀

官方文檔

我在文件中的使用,沒有使用下拉刷新的功能,大家可以直接看官網(wǎng)代碼:

<template> <div class='myOffice'> <van-tabs v-model='active'> <van-tab> <van-list v-model='loading1' :finished='finished1' finished-text='沒有更多了' @load='onLoad1' :error.sync='error1' error-text='請(qǐng)求失敗,點(diǎn)擊重新加載'> <van-cell v-for='(item,index) in list1' :key='item.PROJID' @click='handle(’1’,index)'> <div class='num'>{{item.PROJID}}</div> <div class='name'>{{item.SERVICENAME}}</div> <div class='cleatFloat detailInfo'><div class='floatLeft deptName'> <i></i> <span>{{item.DEPTNAME}}</span></div><div class='floatRight time'> <i></i> <span>{{item.ACCEPTTIME.slice(0,item.ACCEPTTIME.length-2)}}</span></div> </div> </van-cell> </van-list> </van-tab> <van-tab> <van-list v-model='loading2' :finished='finished2' finished-text='沒有更多了' @load='onLoad2' :error.sync='error2' error-text='請(qǐng)求失敗,點(diǎn)擊重新加載'> <van-cell v-for='(item,index) in list2' :key='item.flowroleid' @click='handle(’2’,index)'> <div class='num'>{{item.PROJID}}</div> <div class='name'>{{item.SERVICENAME}}</div> <div class='cleatFloat detailInfo'><div class='floatLeft deptName'> <i></i> <span>{{item.DEPTNAME}}</span></div><div class='floatRight time'> <i></i> <span>{{item.ACCEPTTIME.slice(0,item.ACCEPTTIME.length-2)}}</span></div> </div> </van-cell> </van-list> </van-tab> </van-tabs> </div></template>

<script>export default { name:’MyOffice’, data(){ return { active: 0, list1: [], loading1: false, finished1: false, error1: false, page1: 1, list2: [], loading2: false, finished2: false, error2: false, page2: 1 } }, methods:{ onLoad1(){ var _vm = this; _vm.param.pageNo = _vm.page1; _vm.param.handleState = ’1’; _vm.axios.post(’*************’,_vm.param).then(response => { _vm.page1 ++; var moreList = response.data.data.data; if(moreList){ _vm.list1.push(...moreList); _vm.loading1 = false; _vm.finished1 = false; }else{ _vm.loading1 = false; _vm.finished1 = true; } }).catch(error => { _vm.error1 = true; _vm.loading1 = false; }) }, onLoad2(){ var _vm = this; _vm.param.pageNo = _vm.page2; _vm.param.handleState = ’2’; _vm.axios.post(’******************’,_vm.param).then(response => { _vm.page2 ++; var moreList = response.data.data.data; if(moreList){ _vm.list2.push(...moreList); _vm.loading2 = false; _vm.finished2 = false; }else{ _vm.loading2 = false; _vm.finished2 = true; } }).catch(error => { console.log(error); _vm.error2 = true; _vm.loading2 = false; }) }, handle(type,index){ this.$router.push(’/itemDetail?type=’ + type + ’&index=’ + index); } }}</script>

補(bǔ)充知識(shí):Vant 在vue中 按需引入和全部加載

1. 問題描述:

在vue-cli 2.x 腳手架中練習(xí)使用vant組件庫(kù), 在main.js用于組件的時(shí)候 報(bào)錯(cuò) Vant is not defined

因?yàn)槲沂菧y(cè)試練習(xí)vant的 ; demo分為 全部加載 和按需加載兩種方式

按需加載

1.首先搭建vue腳手架,

2.下載vant

3. 下載 babel-plugin-import (按需加載使用)

3.當(dāng)下載好了以后,就可以在 .vue文件中使用了

下載vant: cnpm install vant -S

下載babel-plugin-import: cnpm install babel-plugin-import -S

首先引入: (官方文檔):

import Vue from ’vue’;import { Button } from ’vant’;Vue.use(Button);

我的寫法:

<template> <van-popup v-model='show' position='top' : /> <van-cell-group> <van-cell value='內(nèi)容' /> <van-cell value='內(nèi)容' label='描述信息' /> </van-cell-group></template><script>import { Popup } from 'vant';import { Cell, CellGroup } from 'vant';components:{ [Cell.name]: Cell, [CellGroup.name]: CellGroup,}</script>

大家可以在計(jì)算屬性中打印一下你引入的組件,看看里面有什么了

全部加載

第一步: 下載vue腳手架

vue init webpack 項(xiàng)目名;

第二步: 下載vant

cnpm install vant -S

在main.js 中 以引入并使用

import Vant from ’vant’import ’vant/lib/index.css’Vue.use(Vant);

-未修改之前的 .babelrc 文件

{ 'presets': [ ['env', { 'modules': false, 'targets': { 'browsers': ['> 1%', 'last 2 versions', 'not ie <= 8'] } }], 'stage-2' ], 'plugins': ['transform-vue-jsx', 'transform-runtime']}

第三步: 安裝babel-plugin-import (這部是按需加載的時(shí)候需要用到的,如果你全部引入了 就不需要)

cnpm install babel-plugin-import -S

-在 下載 babel-plugin-import 后修改 .babelrc的文件

{ 'presets': [ ['env', { 'modules': false, 'targets': { 'browsers': ['> 1%', 'last 2 versions', 'not ie <= 8'] } }], 'stage-2' ], 'plugins': ['transform-vue-jsx', 'transform-runtime', ['import',{'libraryName':'vant','style':true}]], 'env': { 'test': { 'presets': ['env', 'stage-2'], 'plugins': ['transform-vue-jsx', 'transform-es2015-modules-commonjs', 'dynamic-import-node'] } }}

第四.如果你安裝了babel-plugin-import 這個(gè) 然后需要把這個(gè)卸載掉, 然后重新項(xiàng)目; 在你卸載掉babel-plugin-import 這個(gè)的時(shí)候 .babelrc這個(gè)文件也要恢復(fù)到一開始沒修改的樣子偶(就是上面的’’未修改之前的 .babelrc 文件)

cnpm uninstall babel-plugin-import -S

接下來重啟項(xiàng)目就應(yīng)該可以了。

以上這篇vue 使用vant插件做tabs切換和無限加載功能的實(shí)現(xiàn)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 欧美精品免费一区欧美久久优播 | 国产成+人欧美+综合在线观看 | 日本一极毛片兔费看 | 亚洲狠狠成人综合网 | 玖玖爱在线观看 在线播放 玖玖草在线观看 | 久久精彩 | 国产一区二区三区在线电影 | 免费国产草莓视频在线观看黄 | 激情小视频在线播放免费 | 国产成人一区二区三区视频免费蜜 | 一级一级特黄女人精品毛片 | 91成人在线免费视频 | 一级做a爰片性色毛片思念网 | 免费观看黄色一级视频 | 免费视频一区二区三区四区 | 国产97在线视频 | 日本xxx护士与黑人 日本xxx免费视频 | 国产欧美在线观看精品一区二区 | 国产女精品视频在ktv | 男女自偷自拍视频免费观看篇 | 成年人免费视频网站 | 五月四房播 | 中文成人在线 | 一区二区三区免费视频网站 | 亚洲国产精品a一区二区三区 | 国产真实伦偷精品 | 亚洲欧洲一二三区机械有限公司 | 国产精品亚洲欧美一级久久精品 | 国产大片在线播放 | 欧美成人全部免费观看1314色 | 在线免费观看国产 | 国产乡下三级全黄三级带 | 亚洲国产成人va在线观看网址 | 亚洲网址 | 日本高清αv毛片免费 | 毛片综合 | 99久久精品免费观看国产 | 国产永久在线 | 免费国产午夜在线观看 | 色综合国产 | 午夜不卡av免费 |