分享更有价值
被信任是一种快乐

Vue怎么解决router传递params参数在页面刷新时数据丢失问题

文章页正文上

本文小编为大家详细介绍“Vue怎么解决router传递params参数在页面刷新时数据丢失问题”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue怎么解决router传递params参数在页面刷新时数据丢失问题”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
Vue 项目:如何解决 router 传递 params 参数,在页面刷新时数据丢失
情况是这样,通常我们会从一个 A 页面跳转到另一个 B 页面,如果这两个页面存在数据交互的话,就会有可能发生数据丢失的情况:
就比如我们 A 页面有一个按钮,点击按钮将数据传递给其他页面:
那接下来我们就可以新建一个 A.vue 文件代码如下:


export default {
name: ‘A’,
data() {
row: {
name: ‘A 页面’
},
},
methods: {
toB() {
this.$router.push({
name: ‘B’,
params: {
row: this.row
}
})
}
}
}

接着就是 B 页面接受 A 页面的数据:
我们可以新建一个 B.vue 页面:


export default {
name: ‘B’,
props: [‘row’],
}

这里之所以可以使用 props 属性来接收 row,是因为我们在路由配置文件通过设置 props 为 true 来开启了路由参数解耦:
{
path: ‘/B’,
name: ‘B’,
props: true,
component: import(‘B.vue’)
}
但是如果用户突然刷新了 B 页面数据会丢失,我们一般免费云主机、域名如何解决呢?大概有三种方法:
第一种:使用 query 查询的方式传递参数: 在 A 页面传递数据:
this.$router.push({
name: ‘B’,
query: {
row: JSON.stringify(this.row)
}
})
B 页面接受数据:

第二种:还是使用 params 传递参数,但是得结合 localstroage 缓存
比如 A 页面:
this.$router.push({
name: ‘B’,
params: {
row: this.row
}
})
B 页面接受数据: 在 created 生命周期时先缓存数据,在页面销毁时删除缓存
export default {
name: ‘B’,
data() {
return {
row: null
}
},
created() {
let rowData = localStorage.getItem(‘rowData’)
if(rowData) {
this.row = this.$route.params.row
localStorage.setItem(‘rowData’, JSON.stringify(this.$route.params.row))
}
},
beforeDestory() {
localStorage.removeItem(‘rowData’)
}
}读到这里,这篇“Vue怎么解决router传递params参数在页面刷新时数据丢失问题”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注云技术行业资讯频道。

相关推荐: jquery.parsejson转义如何用

这篇文章主要介绍“jquery.parsejson转义如何用”,在日常操作中,相信很多人在jquery.parsejson转义如何用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”jquery.parsejson转义如何用”的疑惑…

文章页内容下
赞(0) 打赏
版权声明:本站采用知识共享、学习交流,不允许用于商业用途;文章由发布者自行承担一切责任,与本站无关。
文章页正文下
文章页评论上

云服务器、web空间可免费试用

宝塔面板主机、支持php,mysql等,SSL部署;安全高速企业专供99.999%稳定,另有高防主机、不限制内容等类型,具体可咨询QQ:360163164,Tel同微信:18905205712

主机选购导航云服务器试用

登录

找回密码

注册