父组件和子组件同是使用 beforeDestroy 钩子 保存同一份数据

472 阅读1分钟

根据业务需求,进入页面先取 sessionStorage,在页面离开的时候,需要保存数据到 sessionStorage 里边,然后跳转到下个页面,进入到下个页面之后,就取 sessionStorage 里边的数据

比如后端需要的数据格式

    {
        settings:{
            content: '这里是父组件需要保存的'
            dataset: '子组件保存的内容'
        }
    }

父组件 和 子组件 同时 要 beforeDestroy 离开之前 保存数据,跳转到 A 页面, 进入 A 页面取 sessionStorage 里边的内容接着编辑,但是 数据是取到了,内容总是 子组件保存的内容, 父组件没有保存成功。

问题是需要让他们有先后保存的概念, 所以用到了异步 setTimeout进行保存 子组件的内容

    beforeDestroy () {
        setTimeout (() =>{
            sessionStorage.setItem("streamJobEntity", JSON.stringify(data));
        }, 0) 
    },