Building an app with Vue 3, Axios, Pinia and Vue Router
Building an app with Vue 3, Axios, Pinia and Vue Router
Overview
Vue 3 is the latest version of the popular Vue framework. In this article, we'll build a simple app using Vue 3 along with some other complementary libraries:
Axios for making API calls
Pinia for state management
Vue Router for routing
Getting Started
Let's start by scaffolding a Vue 3 app using Vue CLI:
vue create my-app
Select Vue 3 as the version. This will generate a basic Vue 3 project for us.
Adding Axios
Axios is a popular library for making HTTP requests in Vue apps. Let's install it:
npm install axios
Then we can make requests in our Vue components like this:
<script>
import axios from 'axios'
axios.get('/some/api/endpoint')
</script>
Adding Pinia for State Management
Pinia is Vue's own state management library, similar to Vuex. Let's install it:
npm install pinia
We can then create a store like this:
import { defineStore } from 'pinia'
import { ref } from 'vue'
export const useCounterStore = defineStore('counter',()=> {
const count ref(0);
function increment() {
count++
}
})
And use it in our Vue components by doing:
<script setup>
import { useCounterStore } from '@/stores/counter'
const counter = useCounterStore()
counter.increment()
</script>
Adding Vue Router
Vue Router is the official router for Vue. Let's install it:
npm install vue-router@4
We can then create routes and navigate between them in our app.
Conclusion
We've now set up a basic Vue 3 app using some essential companion libraries like Axios, Pinia and Vue Router. From here, you can build out the rest of your application!
Subscribe to my newsletter
Read articles from Samuel Agyei directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Samuel Agyei
Samuel Agyei
I am a full-stack developer. I am passionate about programming in general. I love to read documentaries and code