Vuex如何处理api错误通知?

2023-12-23

两周前我开始使用 Vuex,我意识到 Vuex 非常适合处理应用程序的状态。但是,API调用的错误很难处理。当我从服务器获取数据时,我会调度一个操作。当数据成功返回后,当然一切都好了。但是当错误发生时,我改变了状态,我不知道如何通过Vuejs组件的状态来检测它并通知用户。有人能给我一些建议吗?


我通常有以下部分:

  • 用于显示通知的组件,通常是警报或小吃栏或类似内容,例如error-notification。我在较高级别上使用此组件,位于根应用程序组件的正下方。这取决于您的布局。
  • vuex 中指示错误状态的属性,通常是带有错误代码和消息的错误对象,例如error
  • 存储中的一个突变用于引发设置错误属性的错误,例如raiseError
  • 存储中的一个突变用于消除错误并清除错误属性,例如dismissError

使用这些,您需要:

  • Display error-notification基于error在商店里:<error-notification v-if="$store.state.error :error="$store.state.error"/>
  • 当发生错误时,调用raiseError突变(在 API 回调中):vm.$store.commit('raiseError', { code: 'ERR_FOO', msg: 'A foo error ocurred'})
  • In error-notification,调用dismissError通知关闭时发生突变。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vuex如何处理api错误通知? 的相关文章

  • 通过 declarativeNetRequest + extensionPath 重定向时获取原始 URL

    我需要在导航时但在用户从使用设置的规则重定向之前获取 chrome 选项卡的 urldeclarativeNetRequest 目前 用户可以使用上下文菜单添加规则 当尝试访问过滤的主机时 它将被重定向到内部扩展页面 chrome cont
  • 删除Vue子组件

    我真的被这个问题困扰了 我创建了一个由子组件组成的 Vue 2 0 组件 它全部都是 Webpacked 等 例如 这是父组件 div h1 This is just a title for lulz h1 div
  • vuejs 模板和 asp.net 部分视图,好的做法吗?

    我在网站中使用 Vue js 并将模板添加到 html 代码中 并将 js 代码添加到单个 js 文件中 所以我不想使用 vue Vuefy Browserfy 方法 而是稍后捆绑并缩小我的 js 文件 由于我必须使用 Asp Net MV
  • 如何从vuejs和firestore获取文档的id?

    我有这个代码可以从 firestore 获取所有文档 const getThemesList async commit gt const snapshot await firebase firestore collection themes
  • 将 Stripe.js 作为 ES 模块导入到 Vue 中

    我正在尝试按照 stripe elements 文档中的说明并将 ES 模块安装到我的 Vue 支付组件中 https stripe com docs stripe js html js 请注意 目前 Stripe 网站 ES 模块安装选项
  • Vue 开发样板中的随机错误“以太坊未定义”

    我正在尝试使用 vue cli 创建的 Vue 基本样板在一个非常基本的 Vue3 组件中实现 web3 但我有一些奇怪的错误 首先 这是我的组件的代码
  • 我应该使用 redux-form 存储而不是组件状态和 Redux 自定义存储吗?

    我相信任何应用程序都应该有一个事实来源 我的应用程序将有 90 多种交易表格和 150 份报告 复杂的数据结构 父级 子级 计算 所以在 React 中我发现了三个令人困惑的存储状态的地方 组件状态 当我们don t想要共享数据 Redux
  • 使用 Nuxt 动态获取并编译模板

    我想从远程获取 svg 并通过编译使其栩栩如生 对于 赋予生命 我的意思是按类选择其中一些元素 并动态地将组件列表附加到其中 现在我只是使用 div div 我的组件如下所示 data return svg async created le
  • 在可组合项 vue3 中使用 props

    我正在将应用程序从 vue 2 升级到 vue 3 但在可组合项方面遇到了一些问题 我想在可组合项中使用道具 但它似乎不起作用 代码示例是从工作组件中提取的 当我将其留在组件中时 它可以正常工作 我假设defineProps不受可组合项支持
  • 如何为 VueJS 组件创建 v-model 修饰符?

    在VueJS中有一些v model修改预解析绑定值 例如v model trim从字符串中删除空格 如何创建自己的修改器 例如v model myparse今天嗯使用类似的东西 computed name get function retu
  • Vue-动态导入vue组件

    我有很多组件 我想按需导入 我有一个下拉菜单 其中实际上包含组件列表 即要加载的内容 我试过这个例子
  • 如何居中对齐表格 - PDFMAKE

    我可以使用 PDFMAKE 创建一张居中对齐 页面 的表格吗 已定义的对齐方式 样式中的 center 和标签表内的 table width auto body text PER ODO style tableHeader text VOL
  • 如何在 NuxtJs 路由中使用 *(星号)?

    在 vue cli 生成的普通 Vue 不是 Nuxt 项目中 使用 在 vue router 中这样工作 export default new Router routes path about name about component A
  • 在 vuejs 上将 \n 替换为新行

    我正在尝试将 n 字符替换为来自端点的数据的新行 I tried p item licensedocument legal documentText replace r n r n g br p 并没有奏效 当我将replace 写入问题末
  • 将变量从调用它的父页面传递给 Vue 组件

    我有一个简单的表格 显示了我的所有数据 主文件 php table class table table bordered table hover thead tr th Job Name th th Job Description th t
  • 使用react redux获取删除请求方法不删除

    我正在尝试使用 fetch 删除请求方法来使用 React redux 删除本地主机服务器中的项目 调用方法 deleteItem e e preventDefault const id this props id this props d
  • Vue.js - 当标头中使用 multipart/form-data 时,axios 中的文件上传验证失败

    我正在构建一个 Laravel Vue js SPA 单页应用程序 BootstrapVue https bootstrap vue js org Vee验证 https logaretm github io vee validate gu
  • 如何减少 WEBPACK + VUEJS 中的包大小

    我遵循了很多有关如何减小捆绑包大小的教程 但没有任何内容对捆绑包大小产生任何影响 我不知道为什么 每次当我向 webpack 添加一些新代码时 我的包大小都保持与以前相同 我的应用程序是使用 vue cli 3 pwa 插件 webpack
  • redux - 如何存储和更新键/值对

    我正在使用 redux 和 React js 我想存储简单的键 值对 但无法获得正确的减速器语法 在这种情况下 每个键 值对将保持与外部系统的连接 这是正确的做法吗 我刚开始使用 redux 所以这有点神秘 export default s
  • 使用 jquery-chosen 插件更新 vuejs 模型值

    尝试使用jquery 选择 http harvesthq github io chosen 使用 vue 问题是这个插件隐藏了我应用的实际选择v model 所以当我选择一个值时 vue 不会将其识别为选择更改事件 并且模型值不会更新 当我

随机推荐

  • 如何使用 NodeJS 验证 Hmac?

    我可以使用以下代码通过 NodeJS 成功创建 Hmac 稍微改变示例 https nodejs org api crypto html cryptocreatehmacalgorithm key options https nodejs
  • 如何通过 ssh 连接到 docker 容器

    我正在运行容器hypriot rpi busybox httpd 我正在尝试 ssh 到 docker 容器 但出现以下错误 pi raspberrypi docker exec it cc55da85b915 bash rpc error
  • 将键码的字符串表示形式转换为 Qt::Key (或任何 int)并返回

    我想将代表键盘上的键的字符串转换为键码枚举 例如Qt Key http doc qt digia com 4 7 qt html Key enum 或其他任何东西 转换示例如下 Ctrl to Qt Key Control Up to Qt
  • 远程处理 - 有关客户端的信息。 C#

    在 net 2 0 上使用远程处理时是否可以找到 获取有关连接客户端的一些信息 我想知道有关服务器端连接客户端的一些信息 以便我可以采取相应的行动 这是一个小型且非常本地化的应用程序 同时连接 请求的客户端数量最多不会超过 10 个 在每个
  • Facebook 登录 JS - FB.Event.subscribe('auth.login') 无需点击登录按钮即可触发

    我真的需要您帮助我尝试在我的网站上实现 使用 Facebook 登录 功能 基本上 我正在努力实现以下目标 如果用户之前已确认该应用程序并单击 FB 登录按钮 在我的网站上 他们登录到该网站 使用网站的用户 与 Facebook 用户 ID
  • Jquery 如果它是第一次单击元素

    我需要我的脚本在第一次单击元素时执行某些操作 并在单击 2 3 4 等时继续执行不同的操作 selector click function I would realy like this variable to be updated var
  • 如何扩展/继承组件?

    我想为 Angular 2 中已经部署的一些组件创建扩展 而不必几乎完全重写它们 因为基础组件可能会发生更改 并希望这些更改也反映在其派生组件中 我创建了这个简单的示例来尝试更好地解释我的问题 具有以下基本组件app base panel
  • 了解 JNDI

    JNDI 就像是一张增强版的地图 对吧 我使用键来查找对象的引用 另外 什么是InitialContext 我似乎不太明白这个想法 从概念上讲 JNDI 就像System getProperties 使用类固醇 System getProp
  • Nexus 6 融合位置提供程序 getSpeed 返回 0

    运行 Android 5 0 1 的 Nexus 6 设备上安装的 Google Play 服务版本 6 7 76 设备设置 位置模式设置为 仅限设备 在 Nexus 6 上 当使用具有 PRIORITY HIGH ACCURACY 的融合
  • JDK7 SSL 连接问题忽略不支持的密码套件:TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

    我正在建立 SSL 连接 作为客户端 并根据这篇 Oracle 文章 http docs oracle com javase 8 docs technotes guides security SunProviders html SunJSS
  • AWS ECS 503 服务在部署时暂时不可用

    我正在为我的应用程序使用 Amazon Web Services EC2 容器服务和应用程序负载均衡器 当我部署新版本时 我收到 503 服务暂时不可用大约 2 分钟 这比我的应用程序的启动时间要长一点 这意味着我现在无法进行零停机部署 是
  • 拉姆达捕获

    我总是对 lambda 捕获感到困惑 并且不知道变量是通过引用捕获还是通过值捕获 例如 如果我有 a 我不知道是否a通过值或引用捕获 我认为获得它的一个简单方法是通过示例 因此 让我们为每种情况准备一个 如果有多种表达同一事物的方式 则更多
  • 在 php 类中使用 html 是否不好?

    在类函数中使用 html 有什么问题吗 我在 DOM 中调用它 因此不需要返回字符串 public function the contact table gt div some html here div div class staff m
  • 在django中使用分页时如何返回最后一页?

    在一个简单的论坛中 我使用本机 django分页 https docs djangoproject com en 1 8 topics pagination 我希望用户在发布帖子后能够被引导至主题的最后一页 这是视图 login requi
  • Python:确保我的类仅使用最新协议进行腌制

    我正在开发一个只能使用协议 2 以及 Python 3 以上 进行有意义的腌制的类 当使用较旧的协议时 会发生难以追踪的错误 我希望为该类的用户节省一些调试的麻烦 因此我希望该类在使用小于 2 的协议进行 pickle 时立即引发异常 我怎
  • 存储序列化数组时进行清理

    如果我将序列化数组存储到 mysql 数据库 我应该在使用序列化函数之前或之后进行清理吗 或者我什至需要消毒吗 例如 details name mysql real escape string POST name details email
  • iOS 应用程序中的点赞按钮

    有谁知道如何将 Facebook 喜欢 按钮放入 iOS 应用程序中 我已经尝试过这里描述的方法博客文章 http petersteinberger com 2010 06 add facebook like button with fac
  • 使用 SQL 从 Oracle 数据库插入和检索 BLOB 数据的方法有哪些?

    我尝试使用 SQL Developer 插入 BLOB 数据 但我找不到实际用于插入 BLOB 数据的插入语句 除此之外 数据库速度确实很慢 对于小文件 它执行得很好 但是当我尝试将 50 mb avi 文件导入 BLOB 时 花了 3 4
  • Ruby Integer()、Array() 等——它们是什么?他们来自哪里?

    我有时遇到过 Array value String value 和 Integer value 形式的转换 在我看来 这些只是调用相应 value to a value to s 或 value to i 方法的语法糖 所以我想知道 这些是
  • Vuex如何处理api错误通知?

    两周前我开始使用 Vuex 我意识到 Vuex 非常适合处理应用程序的状态 但是 API调用的错误很难处理 当我从服务器获取数据时 我会调度一个操作 当数据成功返回后 当然一切都好了 但是当错误发生时 我改变了状态 我不知道如何通过Vuej