Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yubinCloud
fairy-wiki
提交
9796ff29
F
fairy-wiki
项目概览
yubinCloud
/
fairy-wiki
通知
4
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fairy-wiki
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9796ff29
编写于
4月 27, 2021
作者:
yubinCloud
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
9-9 整合 vuex 和 SessionStorage,解决刷新后登录数据丢失问题
上级
18e4751c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
29 addition
and
11 deletion
+29
-11
web/public/index.html
web/public/index.html
+1
-0
web/public/js/session-storage.js
web/public/js/session-storage.js
+17
-0
web/src/components/the-header.vue
web/src/components/the-header.vue
+6
-8
web/src/store/index.ts
web/src/store/index.ts
+5
-3
未找到文件。
web/public/index.html
浏览文件 @
9796ff29
...
...
@@ -6,6 +6,7 @@
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>favicon.ico"
>
<script
src=
"<%= BASE_URL %>js/md5.js"
></script>
<script
src=
"<%= BASE_URL %>js/session-storage.js"
></script>
<title><
%=
htmlWebpackPlugin.options.title
%
></title>
</head>
<body>
...
...
web/public/js/session-storage.js
0 → 100644
浏览文件 @
9796ff29
SessionStorage
=
{
get
:
function
(
key
)
{
const
v
=
sessionStorage
.
getItem
(
key
);
if
(
v
&&
typeof
(
v
)
!==
"
undefined
"
&&
v
!==
"
undefined
"
)
{
return
JSON
.
parse
(
v
);
}
},
set
:
function
(
key
,
data
)
{
sessionStorage
.
setItem
(
key
,
JSON
.
stringify
(
data
));
},
remove
:
function
(
key
)
{
sessionStorage
.
removeItem
(
key
);
},
clearAll
:
function
()
{
sessionStorage
.
clear
();
}
};
web/src/components/the-header.vue
浏览文件 @
9796ff29
...
...
@@ -21,12 +21,12 @@
<a-menu-item
key=
"/about"
>
<router-link
to=
"/about"
>
关于我们
</router-link>
</a-menu-item>
<a
class=
"login-menu"
v-show=
"currUser.
id
"
>
<a
class=
"login-menu"
v-show=
"currUser.
name
"
>
<span>
Welcome,
{{
currUser
.
name
}}
</span>
</a>
<a
class=
"login-menu"
v-show=
"!currUser.
id
"
@
click=
"showLoginModal"
>
<a
class=
"login-menu"
v-show=
"!currUser.
name
"
@
click=
"showLoginModal"
>
<span>
登录
</span>
</a>
</a>
S
</a-menu>
<a-modal
...
...
@@ -48,7 +48,7 @@
</
template
>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
}
from
"
vue
"
;
import
{
computed
,
defineComponent
,
ref
}
from
"
vue
"
;
import
axios
from
'
axios
'
;
import
{
message
}
from
'
ant-design-vue
'
;
import
store
from
"
@/store
"
;
...
...
@@ -60,8 +60,7 @@ export default defineComponent({
name
:
'
the-header
'
,
setup
()
{
// 登录后保存
const
currUser
=
ref
();
currUser
.
value
=
{};
const
currUser
=
computed
(()
=>
store
.
state
.
localUser
);
// 用来登录
const
loginUser
=
ref
({
...
...
@@ -84,8 +83,7 @@ export default defineComponent({
const
respData
=
response
.
data
;
if
(
respData
.
code
===
0
)
{
loginModalVisible
.
value
=
false
;
currUser
.
value
=
respData
.
data
;
store
.
commit
(
"
setLocalUser
"
,
currUser
.
value
);
store
.
commit
(
"
setLocalUser
"
,
respData
.
data
);
message
.
success
(
"
登录成功!
"
);
}
else
{
message
.
error
(
respData
.
msg
);
...
...
web/src/store/index.ts
浏览文件 @
9796ff29
import
{
createStore
}
from
'
vuex
'
declare
let
SessionStorage
:
any
;
const
USER
=
'
USER
'
;
const
store
=
createStore
({
state
:
{
localUser
:
{
name
:
''
}
// 表示当前登录的用户及其信息
localUser
:
SessionStorage
.
get
(
USER
)
||
{}
// 表示当前登录的用户
},
mutations
:
{
setLocalUser
(
state
,
user
)
{
state
.
localUser
=
user
;
SessionStorage
.
set
(
USER
,
user
);
// 将该用户的信息存放于 SessionStorage 中
}
},
actions
:
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录