vue开发的一些插件

1)vue-jsonp 跨域请求的插件

用法在 vue-cli webpack开发的项目中我们在main.js添加导入
cnpm i --save-dev vue-jsonp

//main.js
import VueJsonp from 'vue-jsonp'
Vue.use(VueJsonp)

在需要使用的组件中加入

export default {
  name:'hello',
  methods:{
      sonimg(){
          this.$jsonp('/url', {  //方法调用
            请求的参数
          }).then(data=>{
            //得到的数据这是一个promise对象
          }).catch(error=>{
            错误捕获    
          })
        }
    }
}

2)vue-resource 类似jq中的ajax 请求

用法在 vue-cli webpack开发的项目中我们在main.js添加导入
cnpm i --save-dev vue-resource

在需要使用的组件中加入

import vueResole from '地址'
export default {
  name:'hello',
  methods:{
      sonimg(){
          //get
          this.$http.get('url',{
            params:{请求的参数},
            headers:{发送请求头信息 可选参数}
          }).then(item=>{
              结果是在item.data对象中
          },error=>{
            错误的信息
          })
          //post 基本一致
          ///jsonp 跨域请求
        }
    }
}

3)axios 推荐使用 类似jq中的ajax 请求

用法与vue-resource 基本一致
不在是使用this.$http方法 因为vue-resource是插件本身挂在到vue 的实例上了
而是直接使用
axios对象 axios.get() //axios.post()
npm官网

axios.request(config)
axios.get(url[, config])
axios.delete(url[, config])
axios.head(url[, config])
axios.options(url[, config])
axios.post(url[, data[, config]])
axios.put(url[, data[, config]])
axios.patch(url[, data[, config]])

4)vue-lazyload 图片懒加载效果

import Vue from 'vue'
import VueLazyload from 'vue-lazyload'
 
Vue.use(VueLazyload)
 
// or with options
Vue.use(VueLazyload, {
  preLoad: 1.3,
  error: 'dist/error.png', //加载出错的图片地址
  loading: 'dist/loading.gif', //懒加载的longding图片
  attempt: 1
})
//使用
<img v-lazy="真正的图片地址">

5)better-scroll滚动是一个插件

import BScroll from 'better-scroll';
// or with options
const scroll = new BScroll(dom元素,{
    click:true   //因为此插件默认阻止所有默认事件 这里开放点击事件
});

如果需要做无缝轮播
参数

scrollY:false,
scrollX:true,
momentum:false,
snap:{
loop:this.loop,
threshold: 0.3,
speed: 400
},
click:true

6)vue-infinite-scroll 流加载插件(下拉加载数据)

//html
<div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10">
  ...
</div>
//js
var count = 0;
 
new Vue({
  el: '#app',
  data: {
    data: [],
    busy: false
  },
  methods: {
    loadMore: function() {
      this.busy = true;
 
      setTimeout(() => {
        for (var i = 0, j = 10; i < j; i++) {
          this.data.push({ name: count++ });
        }
        this.busy = false;
      }, 1000);
    }
  }
});

7)文件分块上传 vue webuploade 插件

场景当上传文件很大时,上传会导致服务器压力很大,需要用到分块上传

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在学习了之前的路由vue-router和状态管理vuex之后,就应该是网络交互了。就学习尤大推荐的axios了。刚...
    VioletJack阅读 40,122评论 18 84
  • 响应式布局的理解 响应式开发目的是一套代码可以在多种终端运行,适应不同屏幕的大小,其原理是运用媒体查询,在不同屏幕...
    懒猫_6500阅读 806评论 0 0
  • JSLearning 标签(空格分隔): 前端学习 基础 值类型 Undefine Null Boolean Nu...
    唳天杰阅读 325评论 0 0
  • 有关绿皮火车的记忆,不多。在这个飞机,高铁,汽车的时代,绿皮火车早已不是我的首选。然而,也许正因为如此,细细数来这...
    找七七阅读 547评论 6 1
  • 文/阿瑞德 以前我一直不懂为什么别人看《大话西游》的时候鼻涕一把眼泪一把。而当我看到鼻涕一把眼泪一把的时候,才知道...
    bhuabsysbsvshbs阅读 759评论 2 1