小编dev*_*man的帖子

使用 vuex 在 vue/axios 中处理全局 http 响应错误

我正在尝试修复 VueJS SPA 中出现边缘状态的行为。应用程序不知道 JWT 已过期,因此会显示为用户仍处于登录状态。例如,这可能会在休眠后发生。

这些用户可以继续向 API发出任何401请求,但最终会得到响应(而且是正确的)。

我想要一个全局401响应处理程序。(这将是:“从 vuex 中清除所有与用户相关的内容,并像用户是访客一样显示页面,并弹出登录表单等。”)否则,我将不得不为每个请求编写一个 401 处理程序。

我可以向 axios 添加响应拦截器,它们工作得很好。不过,这些拦截器无法访问 Vuex(或 Vue)。

每当我尝试将 Vuex 或 Vue 导入到我的 Axios 中时,我都会得到循环依赖(当然)并且一切都会崩溃。

如果我只是抛出/返回错误,我仍然必须对每个请求单独处理它。如何this.$store从 axios 拦截器内分派方法?

Axios 文件包含一个export default class API全局添加到 Vue 的文件main.js

import api from 'Api/api'
// ...
Vue.prototype.$http = api
Run Code Online (Sandbox Code Playgroud)

我原以为必须有一种方法可以访问Vuefrom $http,因为它是一个全局实例方法。但我好像误会了?

代码

main.js

// ...
import api from 'Api/api'
// ...
Vue.prototype.$http = api

new Vue({
  el: …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js axios vuex vuejs2

8
推荐指数
1
解决办法
1万
查看次数

保留:省略后的元素

我希望在可变宽度的线后面有一个图标(选中标记).如果该行变得太长,我希望它用省略号截断.但是勾选标记应该保留在省略号之后

https://jsfiddle.net/Lkvt39re/

.inner {
  width: 80%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
Run Code Online (Sandbox Code Playgroud)

我将宽度设置为80%,并希望:after在省略号之后插入..well.

我怎样才能做到这一点?

谢谢

css

4
推荐指数
1
解决办法
3143
查看次数

标签 统计

axios ×1

css ×1

javascript ×1

vue.js ×1

vuejs2 ×1

vuex ×1