首页 > 其他分享 >vue3 await

vue3 await

时间:2024-07-21 16:08:23浏览次数:12  
标签:异步 loading const await vue3 fetchData data

在 JavaScript 中,await 是一个用于处理异步操作的关键字。它只能在 async 函数内部使用,并且用于等待一个 Promise 对象的解析。在 Vue 3 中,await 关键字常用于在组合式 API 的 setup 函数中处理异步操作,比如数据获取。

使用 await 的示例

以下是一个使用 await 关键字的简单示例,它在组件挂载时从一个 API 获取数据:

<template>
  <div>
    <p v-if="loading">加载中...</p>
    <p v-else>{{ data }}</p>
  </div>
</template>

<script>
import { ref, onMounted } from 'vue';

export default {
  setup() {
    const data = ref(null);
    const loading = ref(true);

    const fetchData = async () => {
      try {
        const response = await fetch('https://api.example.com/data'); // 发送异步请求
        const result = await response.json(); // 等待响应并解析为 JSON
        data.value = result; // 更新响应式数据
      } catch (error) {
        console.error('数据获取失败:', error);
      } finally {
        loading.value = false; // 请求完成后设置加载状态
      }
    };

    onMounted(() => {
      fetchData(); // 组件挂载时调用 fetchData 函数
    });

    return {
      data,
      loading,
    };
  },
};
</script>

<style>
/* 在这里添加你的样式 */
</style>

解释

  1. 响应式数据:

    • dataloading 都是通过 ref 创建的响应式引用。data 用于存储从 API 获取的数据,loading 用于表示加载状态。
  2. fetchData 异步函数:

    • fetchData 是一个异步函数,使用 async 关键字定义。
    • await fetch('https://api.example.com/data') 发送一个异步请求并等待响应。
    • await response.json() 等待响应解析为 JSON 格式。
    • 如果请求成功,将结果赋值给 data.value
    • try...catch 块中捕获和处理任何可能的错误。
    • 最后,无论请求是否成功,都将 loading.value 设置为 false
  3. 生命周期钩子 (onMounted):

    • onMounted 钩子中调用 fetchData 函数,这样当组件挂载时会立即发送请求。
  4. 模板 (Template):

    • 使用条件渲染 (v-ifv-else) 根据 loading 状态显示加载信息或数据。

通过这种方式,await 关键字可以简化异步操作的处理,使代码更易读且逻辑更清晰。

标签:异步,loading,const,await,vue3,fetchData,data
From: https://www.cnblogs.com/beichengshiqiao/p/18314582

相关文章

  • vue3 async 关键字
    async关键字用于声明一个异步函数,这个函数会返回一个Promise对象。与await关键字配合使用时,可以在异步函数中暂停代码执行,直到Promise解决或拒绝,从而使异步代码的处理更简单和同步化。使用async的示例下面是一个完整的Vue3组件示例,展示了如何使用async和await来......
  • vue3 onMounted是一个生命周期钩子函数
    onMounted是一个生命周期钩子函数,在组件挂载到DOM后运行。在这里你可以执行需要在组件可用后进行的操作,比如获取数据、设置订阅或初始化第三方库。使用示例:import{onMounted}from'vue';onMounted(()=>{//组件挂载后执行的代码console.log('组件已挂载!');......
  • vue3 - 最新详细实现 “拖曳式课程表“ 日历课程排班功能,用鼠标拖拽课程放到日历课表
    效果图在vue3、nuxt3项目开发中,详解实现用鼠标拖拽排课的日历课程表,拖动课程名(学科)到日历课程表的某一节课中,拖放到课表上的时候自动沿边吸附贴合,vue3可视化拖拽生成课程表插件,左边是科目课程、右边是教学周课表,鼠标拖动把课程放到指定的日期时间上即可快速生成课表,数据......
  • vue3 - 最新详细实现 “日历课程表“ 上课时间表功能组件,教务系统专用老师排课表插件
    效果图在vue3、nuxt3项目开发中,详解实现学生每周“动态课程表(日历表展现)”功能实现,对学期的每周课程进行排课和准备工作,可自由切换本月的每周上课表情况、也可通过日期范围选择器进行筛选指定周的教学排班表、相同的课成可以合并(可不开启),课表数据结构支持调用后端服......
  • 【Django+Vue3 线上教育平台项目实战】购物车与订单模块的精简实现与数据安全策略
    文章目录前言一、购物车模块1.后端核心逻辑2.前端页面代码3.操作流程及演示二、订单模块1.订单模块模型类设计1.展示订单信息a.页面展示b.前端核心代码c.后端核心逻辑2.订单是否使用优惠券与积分a.页面展示b.前端核心代码3.订单支付方式a.页面展示b.前端核心代码4.......
  • vue3中mixin的使用方法
     <template><divclass="box">{{mData.name}}</div></template><scriptsetup>import{ref}from'vue'//导入importuserMixfrom"@/common/mixins/user";//拿到数据const{mData......
  • 基于Vue CLI 3构建Vue3项目(Vue2也可参考)
    天行健,君子以自强不息;地势坤,君子以厚德载物。每个人都有惰性,但不断学习是好好生活的根本,共勉!文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。蜀国曾闻子规鸟,宣城还见杜鹃花。一叫一回肠一断,三春三月忆三巴。——《宣城见杜鹃花》文章目录使用......
  • Vue3的学习---2
    2.Vue基本语法2.1文本渲染指令v-html和v-textv-html:将数据当作html代码渲染到页面上v-text:将数据当作纯文本渲染到页面上<body><divid="app"><!--v-html和v-text指令的作用是将数据渲染到HTML元素或文本节点中,避免出现{{num}}--><pv-html="......
  • async await
    async函数返回值......
  • 学Vue3 看这篇就够了
    Vue3简介Vue3是一个流行的开源JavaScript框架,用于构建用户界面和单页面应用。它带来了许多新特性和改进,包括更好的性能、更小的打包大小、更好的TypeScript支持、全新的组合式API,以及一些新的内置组件。1.Vue3的新特性Vue3引入了许多新特性,包括:组合式API:这是Vue3......