最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年11月04日 12:09:21   作者:李小斌96  
這篇文章主要介紹了vue 使用vant插件做tabs切換和無限加載功能的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

樣例:

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

2.引入vant

之前用過很多插件做這個功能,但是效果都不盡人意,出現(xiàn)各種問題,直到遇到vant這個插件,完美的解決了這些小問題,如有問題,歡迎聯(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 title="預(yù)受理">
     <van-list v-model="loading1" :finished="finished1" finished-text="沒有更多了" @load="onLoad1" :error.sync="error1" error-text="請求失敗,點擊重新加載">
      <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 title="正在處理">
     <van-list v-model="loading2" :finished="finished2" finished-text="沒有更多了" @load="onLoad2" :error.sync="error2" error-text="請求失敗,點擊重新加載">
      <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>

補充知識:Vant 在vue中 按需引入和全部加載

1. 問題描述:

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

因為我是測試練習(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" :style="{ height: '30%' }" />
  <van-cell-group>
   <van-cell title="單元格" value="內(nèi)容" />
   <van-cell title="單元格" 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>

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

全部加載

第一步: 下載vue腳手架

vue init webpack 項目名;

第二步: 下載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 (這部是按需加載的時候需要用到的,如果你全部引入了 就不需要)

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 這個 然后需要把這個卸載掉, 然后重新項目; 在你卸載掉babel-plugin-import 這個的時候 .babelrc這個文件也要恢復(fù)到一開始沒修改的樣子偶(就是上面的''未修改之前的 .babelrc 文件)

cnpm uninstall babel-plugin-import -S

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

以上這篇vue 使用vant插件做tabs切換和無限加載功能的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于Vue組件間的常用傳參方式

    關(guān)于Vue組件間的常用傳參方式

    這篇文章主要介紹了關(guān)于Vue組件間的常用傳參方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Storybook?7.0?Beta?Vue3踩坑解決記錄

    Storybook?7.0?Beta?Vue3踩坑解決記錄

    這篇文章主要為大家介紹了Storybook?7.0?Beta?Vue3踩坑解決記錄詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • vuex命名空間的使用

    vuex命名空間的使用

    本文主要介紹了vuex命名空間的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • vue路由組件按需加載的幾種方法小結(jié)

    vue路由組件按需加載的幾種方法小結(jié)

    這篇文章主要介紹了vue路由組件按需加載的幾種方法小結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue better scroll 無法滾動的解決方法

    vue better scroll 無法滾動的解決方法

    better scroll可以實現(xiàn)輪播圖和頁面滾動,是移動端滾動插件,這篇文章主要介紹了vue better scroll 無法滾動的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Vue使用CDN引用項目組件,減少項目體積的步驟

    Vue使用CDN引用項目組件,減少項目體積的步驟

    這篇文章主要介紹了Vue使用CDN引用項目組件,減少項目體積的步驟,幫助大家提高項目加載速度,感興趣的朋友可以了解下
    2020-10-10
  • element的el-form-item的prop作用小結(jié)

    element的el-form-item的prop作用小結(jié)

    Vue表單驗證中的prop屬性用于指定需要驗證的表單字段,它定義了字段名稱并與驗證規(guī)則關(guān)聯(lián),確保數(shù)據(jù)的完整性和準(zhǔn)確性,本文就來介紹一下element的el-form-item的prop作用,感興趣的可以了解一下
    2025-01-01
  • Vue+webpack項目基礎(chǔ)配置教程

    Vue+webpack項目基礎(chǔ)配置教程

    這篇文章主要介紹了Vue+webpack項目基礎(chǔ)配置教程,需要的朋友可以參考下
    2018-02-02
  • Vue中mixins的使用方法以及實際項目應(yīng)用指南

    Vue中mixins的使用方法以及實際項目應(yīng)用指南

    vue中提供了一種混合機制--mixins,用來更高效的實現(xiàn)組件內(nèi)容的復(fù)用,下面這篇文章主要給大家介紹了關(guān)于Vue中mixins的使用方法以及實際項目應(yīng)用指南,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-03-03
  • vue中利用mqtt服務(wù)端實現(xiàn)即時通訊的步驟記錄

    vue中利用mqtt服務(wù)端實現(xiàn)即時通訊的步驟記錄

    前些日子了解到mqtt這樣一個協(xié)議,可以在web上達到即時通訊的效果,所以下面這篇文章主要給大家介紹了關(guān)于vue中如何利用mqtt服務(wù)端實現(xiàn)即時通訊的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評論

台山市| 大埔区| 砀山县| 宝应县| 马尔康县| 神农架林区| 遵义县| 安多县| 梁山县| 灵寿县| 尖扎县| 横峰县| 定南县| 来安县| 六枝特区| 增城市| 兰西县| 揭东县| 格尔木市| 水城县| 西林县| 张家港市| 山丹县| 双江| 南靖县| 嘉祥县| 红原县| 印江| 城步| 贵定县| 勐海县| 施秉县| 紫金县| 上栗县| 万盛区| 五台县| 鸡泽县| 上林县| 定兴县| 扶余县| 定南县|