2022-11-02
2390
#vue
Ukpai Ugochi
26457
Nov 2, 2022 â‹… 8 min read

How to consume APIs with Vuex, Pinia, and Axios

Ukpai Ugochi I'm a full-stack JavaScript developer on the MEVN stack. I love to share knowledge about my transition from marine engineering to software development to encourage people who love software development and don't know where to begin. I also contribute to OSS in my free time.

Recent posts:

Exploring Interaction To Next Paint, A New Core Web Vital

Exploring Interaction to Next Paint, a new Core Web Vital

Interaction to Next Paint was added to Google’s Core Web Vitals to provide a more comprehensive assessment of website interactivity.

Rahul Chhodde
Feb 7, 2024 â‹… 6 min read
Starlight Vs. Docusaurus For Building Documentation

Starlight vs. Docusaurus for building documentation

Explore Docusaurus and Starlight for building and customizing documentation websites, comparing their features such as sidebars, light/dark mode, and tabs.

Kapeel Kokane
Feb 6, 2024 â‹… 10 min read
Comparing Typescript State Management Solutions

Comparing TypeScript state management solutions

Dealing with state management in TypeScript provides benefits like type safety, code formatting, and error management.

Rashedul Alam
Feb 2, 2024 â‹… 17 min read

Create a responsive navbar with React and CSS

Create an intuitive navigation experience with responsive navbars using CSS and React Hooks.

Chinwike Maduabuchi
Feb 1, 2024 â‹… 9 min read
View all posts

8 Replies to "How to consume APIs with Vuex, Pinia, and Axios"

  1. Hi, how do you handle api errors? How are they transported to the GUI when all handling takes place in the store?

  2. Hello! I mostly use bootstrap-vue dismissible alert (https://bootstrap-vue.org/docs/components/alert). This is an example of how I use it.

    {{error}}

    export default {
    name: “Login”,
    data() {
    return {
    email: “”,
    password: “”,
    errors: [],
    };
    },
    methods: {
    login() {
    this.$store.dispatch(“retrieveUser”, {
    email: this.email,
    password: this.password
    });
    this.$store.dispatch(“retrieveId”, {
    email: this.email,
    password: this.password
    });
    this.$store
    .dispatch(“retrieveToken”, {
    email: this.email,
    password: this.password
    })
    .then(response => {
    const errors = response.data.error;
    const token = response.data.token;
    if (errors) {
    this.errors.push(errors);
    } else
    this.$router.push({
    name: “Home”
    });
    });
    },
    }

    I hope this helps!

  3. “`
    {{gettersUser.id}} {{gettersUser.name}} {{gettersUser.address}} “`
    This makes no sense. It should be getUsers.
    “`
    {{ user.id }} {{ user.name }} {{ user.address }}
    “`

  4. Hi, is there a reason that in the same file in the getters you use state.users and in the actions you use this.users? It is confusing, and not interchangeable, I tried. Actions didn’t work with state.users. Thank you

Leave a Reply