Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

202
Views
Can't show recieved data from API in Vuejs3

I am new with Composition API 3 and trying to call an API and show data in page

My code is like this:

let items: IChannel[] = reactive([]);
async function get() {
  try {
    const res = await channelService.get()
    console.log(res)
    items = res.data;
  } catch (err) {
   console.log(err)
    Swal.fire("error", "error", "error");
  }
}

and it successfully gets data from API but doesn't show in template:

<template>
  {{ items }}
</template>

Where is the problem?

about 4 years ago ยท Juan Pablo Isaza
1 answers
Answer question

0

You're overwriting items (a reactive instance) with the raw data, which removes its reactivity:

let items: IChannel[] = reactive([]);
โ‹ฎ
items = res.data; โŒ overwrites `reactive`

Option 1: Use object in reactive

Use a reactive object that receives the raw data:

                           ๐Ÿ‘‡
const items = reactive({ items: [] as IChannel[] });
async function get() {
  try {
    const res = await channelService.get()
            ๐Ÿ‘‡
    items.items = res.data;
  } catch (err) {
    //...
  }
}

demo 1

Option 2: Use a ref

Use a ref instead of reactive, making sure to set its value property with the newly received raw data:

               ๐Ÿ‘‡
const items = ref([] as IChannel[])
async function get() {
  try {
    const res = await channelService.get()
            ๐Ÿ‘‡
    items.value = res.data;
  } catch (err) {
    //...
  }
}

demo 2

about 4 years ago ยท Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
ยฉ 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!