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:

Solving The Node.js Console.Time Is Not A Function Error

Solving the Node.js console.time is not a function error

Explore the two variants of the `console.time is not a function` error, their possible causes, and how to debug.

Joseph Mawa
Nov 1, 2024 â‹… 6 min read
Why jQuery 4 Is A Good Reminder To Stop Using jQuery

Why jQuery 4 is a good reminder to stop using jQuery

jQuery 4 proves that jQuery’s time is over for web developers. Here are some ways to avoid jQuery and decrease your web bundle size.

Shalitha Suranga
Oct 31, 2024 â‹… 11 min read
How to Create a Multilevel Dropdown Menu in React

How to create a dropdown menu in React

See how to implement a single and multilevel dropdown menu in your React project to make your nav bars more dynamic and user-friendly.

Ibadehin Mojeed
Oct 30, 2024 â‹… 12 min read
Purple background with different connections between icons for an article about building Node.js modules with Rust and NAPI-RS.

Building Node.js modules in Rust with NAPI-RS

NAPI-RS is a great module-building tool for image resizing, cryptography, and more. Learn how to use it with Rust and Node.js.

Rahul Padalkar
Oct 30, 2024 â‹… 7 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