[摘要]这篇文章主要给大家介绍了关于Vue用History记录上一页面的数据方法的代码介绍,文中通过示例代码介绍的非常详细,需要的朋友们可以参考一下。前言本文主要介绍的是Vue利用History记录上一页面...
这篇文章主要给大家介绍了关于Vue用History记录上一页面的数据方法的代码介绍,文中通过示例代码介绍的非常详细,需要的朋友们可以参考一下。
前言
本文主要介绍的是Vue利用History记录上一页面数据的相关内容,vue使用history后,能够使得url更加漂亮,也就是不再有‘#'的问题,下面话不多说了,来一起看看详细的介绍吧
需求
从列表页的第二页进入详情页,返回时列表页仍然显示在第二页;
从列表页的第二页进入详情页,返回时列表页的筛选条件仍然存在。
技术选择
使用vue-router组件,通过this.$router.push({path: path, query: query});方式,将页码和选择条件作为参数存储在url中,这种方式在上面的UI设计中是可行的,但是当列表页中包含tab组件时(分页组件是公用的),会因为push的因素(因为push会打开新页面)导致一些问题(PS:也可能是本人技术能力的原因),未实现。
使用History API(HTML5开始支持),通过history.replaceState方式,将页码作为参数存储在url中,将选择条件存储在history中(尚不清楚数据具体是存储在哪里);通过location.hash方式获取页码;通过history.state方式获取存储的选择条件。
具体实现--技术选择2
开关
为分页组件添加一个开关(openroute),因为需要灰度上线,万一有问题,要调整的页面也只有一个。代码如下:
`<script>`
`export` `default` `{`
`props: {`
`openroute: {`
`type: Boolean,`
`default``: () => (``true``)`
`}
`},`
`}`
`</script>`