如何实现 vue 实现 tab 切换页面内容 保存用户输入的内容

2019-08-22 11:36:38 +08:00
 IdJoel

接到一个需求 要我去做一个 tab 切换页面的功能 需求是这样说的:

如果用户在 a 页面添写一些表单,同时要查看 b 页面,希望能在同一个 url 下进行切换,切换后 a 页面输入的数据依旧存在,且可以随时切换。

我的思路是去拿页面的模版,进行页面上的替换 但是这样就会遇到一个问题

如果用户刷新页面,那刷新的是当前页面,可是我好像没办法阻止浏览器默认的刷新事件。能保证 a 页面的表单不被清空,请教一下大佬我该如何实现该功能。

5837 次点击
所在节点    Vue.js
10 条回复
nwu2Cv8OZ2MZMg39
2019-08-22 11:39:24 +08:00
keep-alive
m939594960
2019-08-22 11:40:02 +08:00
{current_tab:"a_data",a_data:{"name":2},b_data:{"name":2}}
biabia123456
2019-08-22 11:40:27 +08:00
keep-alive +1 冻结之前的页面 会多一个生命周期为 activated
m939594960
2019-08-22 11:41:08 +08:00
watch:(a_data){ localstorage['a_data']=a_data }
mikoshu
2019-08-22 11:41:10 +08:00
keep-alive 完美解决
biabia123456
2019-08-22 11:41:42 +08:00
如果要实现用户刷新页面 那就只有数据存下来然后回填了
T3RRY
2019-08-22 11:47:25 +08:00
学到了
gzlock
2019-08-22 11:49:31 +08:00
使用 onbeforeunload 事件在网页关闭 /刷新前提示用户会丢失数据
在父组件或 vuex 存数据
4 楼的做法可以更进一步,使用 computed 将整个表单数据使用 localstorage 存与取
moxiaonai
2019-08-22 12:00:01 +08:00
keep – alive, vuex 都可以
X37B
2019-08-22 17:43:38 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/594139

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX