Skip to content

页面状态管理

ES运行环境根据所需会销毁和重新创建ESRouter堆栈中的页面。
这个时候就需要根据所需在销毁的保存页面状态。 在重新创建页面的时候恢复页面状态。

保存页面状态

ES运行环境在销毁页面之前会调用页面方法onESSaveInstanceState(savedInstanceState)
开发者可以在savedInstanceState对象中保存数据。

调用顺序为onESPause() ==> onESSaveInstanceState(savedInstanceState) ==> onESStop() ==> onESDestroy()

点击查看源码
js
import {ESPageLifecycle} from "@extscreen/es-core";

export default {
    mixins: [ESPageLifecycle],
    methods: {
        onESSaveInstanceState(savedInstanceState) {
            if (savedInstanceState) {
                let now = new Date().getTime();
                savedInstanceState.message = '页面销毁时间:' + now;
                savedInstanceState.loginUserName = "张三";
            }
        },
    }
}

恢复页面状态

ES运行环境在重新创建页面之前会调用页面方法onESRestoreInstanceState(savedInstanceState)
开发者可以在savedInstanceState获取在页面销毁时保存的数据。

调用顺序为onESStart() ==> onESRestoreInstanceState(savedInstanceState) ==> onESResume()

点击查看源码
js
import {ESPageLifecycle} from "@extscreen/es-core";

export default {
    mixins: [ESPageLifecycle],
    methods: {
        onESRestoreInstanceState(savedInstanceState) {
            if (savedInstanceState) {
                let message = savedInstanceState.message;
                let loginUserName = savedInstanceState.loginUserName;
                //do sth else...
            }
        },
    }
}