0.1.41 • Published 5 years ago

vue2-http v0.1.41

Weekly downloads
4
License
MIT
Repository
github
Last release
5 years ago

Vue2Http

Vue Http Component for Vue 2.x

Makes it easy to make HTTP requests, auto-populate objects (via v-model), show progress bar (Nprogress or Bootstrap progress bar) automatically!

Install

    npm install vue2-http --save

Demo

For demo, please see here

Usage

1. Import the component

import Vue2Http from 'vue2-http';

2.1 Use it globally

Vue.use(Vue2Http);

// OR with options

Vue.use(Vue2Http, {baseURL: 'https://jsonplaceholder.typicode.com/', headers: {'X-API-KEY': 1234}});

*3. Access it locally

<template>
    <vue2-http ref="http" v-model="data" :error-fn="onError"></vue2-http>
</template>
components: {
    'vue2-http': Vue2Http
},

//1. automatically show progress bar 
//2. populate "this.data" with request results!
//3. show an error popup on error (error-fn) on error 

this.$refs.http.request(data = null, url = '', method = null, options = {})

Properties

  • url: String

  • method: String (default: GET)

  • data: Object

  • value: any

  • height: any (default: 18)

  • showError: Boolean

  • showSuccess: String

  • showLoading: Boolean

  • loadingLabel: String (default: Loading...)

  • dataKey: String

  • cache: Boolean

  • debounce: Number

  • xDebug: Boolean

  • autoLoad: Boolean

  • recaptcha: Boolean

  • recaptchaKeys: Object

Example

<template>
    <div id="app" style="text-align: center">
        <div>
            <button @click="get">GET</button>
            <button @click="post">POST</button>
            <button @click="dataKey">dataKey</button>
            <button @click="cache">Cached</button>
            <button @click="debounce">Debounced</button>
            <button @click="json">JSON</button>

            <vue2-http ref="http" v-model="data" :error-fn="onError" :x-debug="true"></vue2-http>

            <vue2-http ref="dataKey" v-model="data" :error-fn="onError" data-key="id"></vue2-http>

            <vue2-http ref="cached" v-model="data" :cache="true"></vue2-http>

            <vue2-http ref="debounce" v-model="data" :debounce="2000"></vue2-http>

            <vue2-http v-model="auto" method="post" url="posts" :data="{body: 'test'}" :auto-load="true"></vue2-http>

            <pre>{{data}}</pre>

            <hr>

            <pre>auto: {{auto}}</pre>
        </div>
    </div>
</template>

<script>
    import Vue from 'vue';
    import Vue2Http from '../src/index'

    Vue.use(Vue2Http, {baseURL: 'https://jsonplaceholder.typicode.com/', headers: {'X-API-KEY': 1234}});

    export default {
        name: 'app',
        data() {
            return {
                data: {},
                auto: {},
            }
        },
        methods: {
            onError(e) {
                console.log("e: ", e);
            },
            get() {
                this.$refs.http.request({postId: 1}, 'comments', 'get').then((result) => console.log("result: ", result));
            },
            post() {
                this.$refs.http.request({body: '123'}, 'posts', 'post').then((result) => console.log("result: ", result));
            },
            dataKey() {
                this.$refs.dataKey.request({body: '123'}, 'posts', 'post').then((result) => console.log("result: ", result));
            },
            cache() {
                this.data = {};
                this.$refs.cached.request({postId: 1}, 'comments', 'get').then((result) => console.log("result: ", result)).catch((e) => console.error(e));
            },
            debounce() {
                this.data = {};
                this.$refs.debounce.request({postId: 1}, 'comments', 'get').then((result) => console.log("result: ", result));
                this.$refs.debounce.request({postId: 1}, 'comments', 'get').then((result) => console.log("result: ", result));
            },
            json() {
                this.$refs.http.request(null, 'test.json', 'get', {baseURL: '/'}).then((result) => console.log("result: ", result));
            }
        },
    }
</script>

Contributing

Contributions are welcome

Build Setup

# install dependencies
npm install

# serve with hot reload at localhost:8080
npm run dev

# build for production with minification
npm run build
0.1.41

5 years ago

0.1.40

6 years ago

0.1.38

6 years ago

0.1.37

6 years ago

0.1.36

6 years ago

0.1.35

6 years ago

0.1.34

6 years ago

0.1.33

6 years ago

0.1.32

6 years ago

0.1.31

6 years ago

0.1.30

6 years ago

0.1.29

6 years ago

0.1.28

6 years ago

0.1.25

6 years ago

0.1.24

6 years ago

0.1.23

6 years ago

0.1.22

6 years ago

0.1.21

6 years ago

0.1.20

6 years ago

0.1.19

6 years ago

0.1.18

6 years ago

0.1.17

6 years ago

0.1.16

6 years ago

0.1.15

6 years ago

0.1.14

6 years ago

0.1.13

6 years ago

0.1.12

6 years ago

0.1.11

6 years ago

0.1.10

6 years ago

0.1.9

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago