Persisting state
All your stores are automatically persisted to disk upon graceful exit, so usually there's no need to manually save them. However, if you want to do so:
ts
import { save, saveAll } from 'tauri-plugin-pinia';
// Save a single store.
await save('my-store');
// Save all stores.
await saveAll();
rust
use tauri_plugin_pinia::ManagerExt;
// `manager` represents any type that implements the `Manager` trait.
// This includes `AppHandle`, `Window`, and `WebviewWindow`.
// Save a single store.
manager.save_store("my-store");
// Save some stores.
manager.pinia().save(&["my-store", "my-store-2"]);
// Save all stores.
manager.pinia().save_all();
Custom directory
By default, the stores are saved in the app's data directory. You can change this by setting the path
option when initializing the plugin.
rust
tauri::Builder::default()
.plugin(
tauri_plugin_pinia::Builder::new()
.path("/path/to/custom/directory")
.build(),
)
.run(tauri::generate_context!())
.expect("error while running tauri application");
Autosave async-pinia experimental
Instead of only saving on app exit, you can also enable autosave
to periodically write them to disk.
rust
use std::time::Duration;
tauri::Builder::default()
.plugin(
tauri_plugin_pinia::Builder::new()
.autosave(Duration::from_secs(300))
.build(),
)
.run(tauri::generate_context!())
.expect("error while running tauri application");