Vue 3 Axios Example

Posted on  by admin

In this tutorial, I will show you how to build a Vue.js 3 CRUD example to consume REST APIs, display and modify data using Axios and Vue Router. More Practice: – Vue 3 Authentication with JWT, Vuex, Axios and Vue Router – Vue File Upload example using Axios.

Fullstack: – Vue.js + Node.js + Express + MySQL example – Vue.js + Node.js + Express + PostgreSQL example – Vue.js + Node.js + Express + MongoDB example – Vue.js + Spring Boot + MySQL example – Vue.js + Spring Boot + PostgreSQL example – Vue.js + Spring Boot + MongoDB example – Vue.js + Django example.

Typescript version at:Vue 3 Typescript example with Axios: Build CRUD App. Vuetify version: Vuetify>MethodsUrlsActionsPOST/api/tutorialscreate new TutorialGET/api/tutorialsretrieve all TutorialsGET/api/tutorials/:idretrieve a Tutorial by :idPUT/api/tutorials/:idupdate a Tutorial by :idDELETE/api/tutorials/:iddelete a Tutorial by :idDELETE/api/tutorialsdelete all TutorialsGET/api/tutorials?title=[keyword]find all Tutorials which title contains keyword.

You can find step by step to build a Server like this in one of these posts: – Express, Sequelize & MySQL – Express, Sequelize & PostgreSQL – Express, Sequelize & SQL Server – Express & MongoDb – Spring Boot & MySQL – Spring Boot & PostgreSQL – Spring Boot & MongoDB – Spring Boot & SQL Server – Spring Boot & H2 – Spring Boot & Cassandra – Spring Boot & Oracle – Python/Django & MySQL – Python/Django & PostgreSQL – Python/Django & MongoDB.

  • All of them can work well with this Vue App.

How to send data with

– The App component is a container with router-view. It has navbar that links to routes paths.

  • – TutorialsList component gets and displays Tutorials.
  • – Tutorial component has form for editing Tutorial’s details based on :id.
  • – AddTutorial component has form for submission new Tutorial.

– These Components call TutorialDataService methods which use axios to make HTTP requests and receive responses.

Let me explain it briefly.

– package.json contains 4 main modules: vue, vue-router, axios, bootstrap.

– There are 3 components: TutorialsList, Tutorial, AddTutorial.

– router.js defines routes for each component.

  • – http-common.js initializes axios with HTTP base Url and headers.
  • – TutorialDataService has methods for sending HTTP requests to the Apis.
  • – vue.config.js configures port for this Vue Client.

Open cmd at the folder you want to save Project folder, run command:vue create vue-3-crud.

You will see some options, choose Default ([Vue 3] babel, eslint). After the process is done.

POST/api/tutorialscreate new Tutorial
GET/api/tutorialsretrieve all Tutorials
GET/api/tutorials/:idretrieve a Tutorial by :id
PUT/api/tutorials/:idupdate a Tutorial by :id
DELETE/api/tutorials/:iddelete a Tutorial by :id
DELETE/api/tutorialsdelete all Tutorials
GET/api/tutorials?title=[keyword]find all Tutorials which title contains keyword

We create new folders and files like the following tree:. AddTutorial.vue. TutorialsList.vue. TutorialDataService.js. Run command: npm install [email protected] jquery popper.js. Open src/main.js and import Bootstrap as following-. – Run the command: npm install [email protected]. – In src folder, create router.js and define Router as following code:. We create the routes as an array, each route has:. path: the URL path where this route can be found. name: optional name to use when we link to this route. component: component to load when this route is called.

We also use createWebHistory to switch from using hash to history mode inside the browser, using the HTML5 history API.

Setup Vue 3 Project

– Open src/main.js and import the router in our application:. Let’s open src/App.vue, this App component is the root container for our application, it will contain a navbar.

Now we’re gonna install axios with command: npm install axios. Then, under src folder, we create http-common.js file like this:. Remember to change the baseURL, it depends on REST APIs url that your Server configures. For more details about ways to use Axios, please visit:Axios request: Get/Post/Put/Delete example.

Our service will use axios from HTTP client above to send HTTP requests. As I’ve said before, we have 3 components corresponding to 3 routes defined in Vue Router.

Add Navbar and Router View to Vue 3 CRUD example

  • This component has a Form to submit new Tutorial with 2 fields: title & description.
  • It calls TutorialDataService.create() method.
  • This component calls 3 TutorialDataService methods:.
  • If you click on Edit button of any Tutorial, the app will direct you to Tutorial page with url: /tutorials/:tutorialId.
  • You can add Pagination to this Component, just follow instruction in the post:Vue Pagination with Axios and API (Server Side pagination) example.

Source Code

For getting data & update, delete the Tutorial, this component will use 3 TutorialDataService methods:.

Because most of HTTP Server use CORS configuration that accepts resource sharing restricted to some sites or ports, so we also need to configure port for our App. In project root folder, create vue.config.js file with following content:. We’ve set our app running at port 8081. You can run our App with command: npm run serve. If the process is successful, open Browser with Url: http://localhost:8081/ and check it. This Vue Client will work well with following back-end Rest APIs: – Express, Sequelize & MySQL – Express, Sequelize & PostgreSQL – Express, Sequelize & SQL Server – Express & MongoDb – Spring Boot & MySQL – Spring Boot & PostgreSQL – Spring Boot & MongoDB – Spring Boot & SQL Server – Spring Boot & H2 – Spring Boot & Cassandra – Spring Boot & Oracle – Python/Django & MySQL – Python/Django & PostgreSQL – Python/Django & MongoDB.


Today we’ve built a Vue.js 3 CRUD example successfully with Axios and Vue Router. Now we can consume REST APIs, display and modify data in a clean way.

I hope you apply it in your project at ease. There is Typescript version at:Vue 3 Typescript example with Axios: Build CRUD App.

Or you can add Pagination Component:Vue Pagination with Axios and API example. Or Vuetify version: Vuetify data-table example with a CRUD App | v-data-table.

Happy learning, see you again! For more details about ways to use Axios, please visit:Axios request: Get/Post/Put/Delete example. Fullstack CRUD App:.

Integration: – Integrate Vue.js with Spring Boot – Integrate Vue App with Node.js Express.

Serverless with Firebase: – Vue Firebase Realtime Database CRUD example – Vue Firebase Firestore CRUD example. You can find the complete source code for this tutorial on Github. Typescript version at:Vue 3 Typescript example with Axios: Build CRUD App. Security: Vue 3 Authentication with JWT, Vuex, Axios and Vue Router.

Vue.js Axios is defined as an HTTP client request for the node and the browser.

Axios can be done with simple JavaScript or React and Vue.

Axios is an Excellent HTTP library that executes on both client and a server, which makes an API request, does the task to produce the result and specifies easier concepts to read and debug.

Vue.js is the front-end JavaScript Framework to build tools and libraries.

The Axios works well in the platform like node.js and browsers.

Vue.js Axios is a leading framework to Consume REST APIs is easy with them.

Here all the example code is executed in Visual Studio Code with Node.js.

The Structure is given as :.

Using Simple GET request.

Vue lacks a built-in HTTP library, so Axios library is recommended to keep interaction with REST API.

So here in this article, we have used JSON PLACEHOLDER API to take a few sample data for the application.

Generally, Axios makes HTTP requests like GET, POST, PUT, DELETE.

The methods includes axios.get() and

Axios has good benefits like supports older versions of browsers, JSON package transformations, and supports the upload process.

The Following working Steps to be followed:.

What is Axios?

1.Installation- Axios. 2.Creating Vue.js App to start vue CLI app.

To install vue-Axios (HTTP Client), the following command is used:.

Initialize Axios for Vue 3 CRUD HTTP Client

Node JS Training Program (3 Courses, 7 Projects)3 Online Courses | 7 Hands-on Projects | 25+ Hours | Verifiable Certificate of Completion | Lifetime Access 4.5 (8,328 ratings).

Related Courses. Vue JS Training (1 Courses, 3 Project)JavaScript Training Program (39 Courses, 23 Projects, 4 Quizzes).

The following sample code is reflected in main.js. To run a Vue app.

  • This directs to http://localhost:8080. Installing Vue Dependencies.
  • The next step is to create Components; it is done like src -> Components and adds the code inside the component files.
  • Finally, the sample demonstration is given in Example 1. To start an application, HTML declaration is done, which acts as a front-end UI.

Secondly, to perform Vue.js Component. Lastly, add API to the vue.js Component. To handle errors in the Axios library ‘catch’ method is preferred as we use this in case of any network failure while requesting data.

Using the Loading indicator while the page takes too much time to the respond from the backend.

Run Vue.js 3 CRUD example

In this section, we shall see how to use Vue.js and Axios together.

Showing Simple Request Page. Next, this Java Script part shows application Logic.

Create Vue 3 Components

We have used mount () to the API to make a request, and the results are saved. Creating Basic Vue Application by building an HTML Page by creating html in editor.

How to PATCH update data with axios.patch

Fetching data from API’s through Vue.js Axios. Explanation: To do this, we have already created a project in Vue using Vue-CLI, and next is by installing the Axios library as shown in the above Screenshot.

So this example fetches data from the JSON API, which is created already, and we get that request by .get () in the code.

And now the output looks like this when you open a browser. Fetching data from the third party.


Code: index.html. By now, we have understood the functionality of the application and the fundamentals.

This article would be a pretty starting point to handle API calls in any application and helpful in future projects.

Add Vue Router to Vue 3 CRUD example

Therefore, we have achieved here how to send an HTTP request to the Node.js and fetches respective data from the database.

Vue.js 3 Component Diagram with Vue Router & Axios

This is a guide to Vue.js Axios. Here we discuss How Axios works in Vue.js and Examples along with the codes and outputs.

How to PUT update data with axios.put

You may also have a look at the following articles to learn more –. Build a Vue.js 3 CRUD example to consume REST APIs, display and modify data using Axios and Vue Router.

Each Tutorial has id, title, description, published status.

We can create, retrieve, update, delete Tutorials.

There is a Search bar for finding Tutorials by title. For instruction, please visit:. Typescript version:.

Fullstack with Node.js Express:. Fullstack with Spring Boot:. Fullstack with Django:.

Add Bootstrap to Vue 3 CRUD example

Integration (run back-end & front-end on same server/port). Serverless with Firebase:. See Configuration Reference. In this tutorial we learn how to use the popular Axios API for HTTP requests in Vue.

We cover some of its benefits, error handling and the convenience methods that allow us to easily get, post, update and delete data.

How to delete data with axios.delete

If you want to follow along with the examples in this lesson, you will need an app generated by the Vue CLI.

  • getAll()
  • deleteAll()
  • findByTitle()

If you already have one from a previous lesson, you can use it instead.

Axios is a simpler alternative to the native Javascript Fetch API. It has some additional benefits lilke automatic JSON data transformation.

Like the Fetch API, it’s a promise-based HTTP client and works in the browser. It also works isomorphically on Node.js, which means it can share a codebase in both the browser and Node.js.

Introduction to Vue.js Axios

Axios was inspired by theHTTP service in Angularand is built with the following features. MakesXMLHttpRequestsfrom the browser.

  • get()
  • update()
  • delete()

Makeshttprequests from Node.js.

Create Data Service

Supports thePromise API. Intercepts requests and responses. Transform request and response data. Ability to cancel requests. Automatic transformation of JSON data.

Client side support for protecting againstCross Site Request Forgery (XSRF).

In this lesson we will show examples of how to use Axios with theJSONPlaceholderservice.

How to get data with axios.get

It’s a free online REST API with fake data that makes it easy for us to focus on learning Axios with Vue, instead of worrying about setting up a database. Everything we learn here will be applicable to whatever API you’re using, like Firebase.

You can install Axios with npm by executing the following command in your project folder. tipIf you’re working in VSCode, you can go toTerminal>New Terminalto open a terminal or command prompt with the project folder already selected. Alternatively, you can useyarnorbower. Once the installation is complete, you should see Axios in the list of dependencies in yourpackage.jsonfile. When we want to use it in a component in Vue, we have to import the axios package above the config object in the component’s script block. If you want to load Axios through a CDN, you can use JsDeliver or unpkg.

Lesson Project

Axios allows us to send HTTP requests in one of two ways. We can pass a configuration object to its constructor that consists of at least the request method (get, post etc.) and the url we want to send the request to.

If we’re creating or updating data, we also include a data object. Alternatively, we can use one of the following convenience methods.

These methods take up to three arguments, with only the first parameter (the url we want to send the request to) being required.

We will use these methods in this lesson.

The Axios API and convenience methods

To keep the demonstrations simple, we’ll do everything in the mounted Lifecycle hook. To receive data with Axios, we use thegetconvenience method with the URL of the API we send the request to as argument.

For our example, we want to fetch only a single blog post from JSONPlaceholder so the url is

The get method will return a response object and because Axios is promise-based, we can chain athenblock to the request to handle the response.

As an example, let’s add athenblock and use it to log the data we get back to the console. If we open the developer tools and go to the console, we will see an object in the log.

Project Structure

If we expand this object and then itsdataproperty, we will see the post data.