Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

vue3 promise

作者:仯孒①個亾哋杺¢涳孒   发布日期:2025-12-19   浏览:100

// Vue 3 中使用 Promise 的示例

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

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

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

    // 模拟一个异步请求
    const fetchData = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          if (Math.random() > 0.5) {
            resolve('成功获取数据');
          } else {
            reject('请求失败');
          }
        }, 1000);
      });
    };

    onMounted(async () => {
      try {
        data.value = await fetchData();
        loading.value = false;
      } catch (err) {
        error.value = err;
        loading.value = false;
      }
    });

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

解释说明:

  1. 模板部分

    • 使用 v-ifv-else-ifv-else 来根据状态显示不同的内容。
    • loadingtrue 时,显示“加载中...”。
    • 如果有错误(error 不为空),则显示错误信息。
    • 否则,显示获取到的数据。
  2. 脚本部分

    • 使用 ref 创建响应式变量 loadingerrordata
    • 定义一个模拟的异步函数 fetchData,返回一个 Promise,模拟网络请求。
    • onMounted 钩子中调用 fetchData,并使用 await 等待其完成。
    • 如果请求成功,将结果赋值给 data 并关闭加载状态;如果失败,捕获错误并赋值给 error,同时关闭加载状态。

上一篇:vue数组添加元素

下一篇:vue 单选框

大家都在看

vue.js devtools用法

vue js for循环

highlight.js vue

vue.config.js 配置

vue.config.js 配置代理

vue.config.js configu

node.js vue

vue3组件传值的方式

vue3 子路由

vue3 router传参

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站