当我们第二个页面从第一个页面需要传递的数据较多时,可以将数据存储在sessionStorage里面.
具体实现如下:
handleClick()是对应项的点击事件,点击的时候传递当前项
存储数据到 sessionStorage,里面只能存储字符串。
用到sessionStorage.setItem('key', 'value');分别对应参数的键和值,下面的JSON.stringify()的作用是将 JavaScript 对象转换为 JSON 字符串,
handleClick(item) {
//对应存储的数据的key和value
sessionStorage.setItem('offlineAdviserItem', JSON.stringify(item));
//新页面的路由链接
this.$router.push('/aaaaa');
},
取数据:在需要的页面进行sessionStorage.getItem操作。此方法接受一个键名(key name)作为参数,并返回对应键名的值(key's value)。此操作可以在mounted里面执行。
删除指定的数据:删除是因为sessionStorage里面只能存储5MB的数据,数据使用后可以使用sessionStorage.removeItem方法删除sessionStorage里面的数据,接受一个键名作为参数,会从给定的Storage对象中删除该键名(如果存在)。 如果没有与该给定键名匹配的项,则此方法将不执行任何操作。
//取出数据
const offlineAdviserItemStr = window.sessionStorage.getItem('offlineAdviserItem');
if (offlineAdviserItemStr) {
//解析数据
let offlineAdviserItem = JSON.parse(offlineAdviserItemStr);
//运用数据
this.formInline.computeMonth = String(offlineAdviserItem.computeMonth);
this.$set(this, 'searchComputeMonth', String(offlineAdviserItem.computeMonth));
this.$set(this.formInline.emp, 'empId', offlineAdviserItem.empId);
this.selectList.push({
empId: offlineAdviserItem.empId,
empCode: offlineAdviserItem.empCode,
empName: offlineAdviserItem.empName
});
window.sessionStorage.removeItem('offlineAdviserItem');
}