Consuming a Rest API with Axios in Vue.js (original) (raw)

Last Updated : 30 Jun, 2021

Many times when building an application for the web that you may want to consume and display data from an API in VueJS using JavaScript fetch API, Vue resource, jquery ajax API, but a very popular and most recommended approach is to use Axios, a promise-based HTTP client.

Axios is a great HTTP client library. Similar to JavaScript fetch API, it uses Promises by default. It’s also quite easy to use with VueJS.

Creating VueJS Application and Installing Module:

Project structure

index.html ``

We're sorry, we're not able to retrieve this information at the moment, please try back later

        <div v-else>
            <h4 v-if="loading">
                Loading...
            </h4>
            <div v-for="post in posts" 
                :key="post" class="post">
                {{post.title}}
            </div>
        </div>
    </div>
</div>

<script>
    new Vue({
        el: '#app-vue',
        data() {
            return {
                posts: null,
                loading: false,
                errored: false
            }
        },
        created() {

            // Creating loader
            this.loading = true;
            this.posts = null

            axios.get(
    `http://jsonplaceholder.typicode.com/posts`)
                .then(response => {

                    // JSON responses are 
                    // automatically parsed
                    this.posts = response.data
                })

                // Dealing with errors
                .catch(error => {
                    console.log(error)
                    this.errored = true
                })
        }
    });
</script>

`` style.css `

#app-vue { display: flex; justify-content: center; font-family: 'Karla', sans-serif; font-size: 20px; }

.post { width: 300px; border: 1px solid black; display: flex; flex-direction: row; padding: 20px; background: #FFEEE4; margin: 10px; }

`

Steps to Run Application: If you have installed the Vue app, you can run your application using this command.

npm run serve

Output: If you are using it as CDN then copy the path of your HTML and paste it on your browser.

Output of our application

Conclusion: There are many ways to work with Vue and axios beyond consuming and displaying an API. You can also communicate with Serverless Functions, post/edit/delete from an API where you have to write access, and many other benefits.