Skip to content

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");