状态保存
const initHmr = function(app: App) {
const env = getEnv();
if (env.env !== "dev") {
return;
}
app.mixin({
created() {
if (import.meta.hot) {
const componentId = this.$options.__hmrId;
if (!this.$options.__file?.includes("src/views/sale/bill/automobile/index.vue")) {
return;
}
if (!componentId) {
return;
}
console.log(this);
// 恢复状态
if (import.meta.hot.data[componentId]) {
Object.assign(this.$data, import.meta.hot.data[componentId]);
console.log(this.$data);
}
// 保存状态
import.meta.hot.dispose((data) => {
});
}
}
});
};
获取Proxy的setup变量

auto import
import autoImport from "unplugin-auto-import/vite";
export default function createAutoImport (){
return autoImport({
imports: [
"vue",
"vue-router",
"pinia",
{
"@/hmr/use-hmr-persist": [
["useHmrPersist", "hmr"] // 使用短名称
]
}
],
dts: false
});
}