web-dev-qa-db-fra.com

Est-il possible d'accéder au magasin Svelte à partir de fichiers js externes?

Je me demande si je pourrais accéder à mes Svelte stocker les valeurs à partir d'un simple fichier .js.

J'essaie d'écrire des fonctions renvoyant une valeur dynamique basée sur une valeur de magasin, pour les importer dans n'importe quel composant. Mais dans un fichier .js simple, je ne peux pas simplement accéder à la valeur de magasin avec le signe $.

Exemple rapide d'une fonction de base utilisant une valeur de stockage et pouvant être utilisée sur plusieurs composants:

//in .svelte

function add() {
    $counter = $counter + 1;
 }

EDIT: reformuler un pe

EDIT: J'ai trouvé une solution mais je ne sais pas vraiment si elle est vraiment optimisée ..

//in .js file

import { get } from "svelte/store";
import { counter } from "./stores";

export function add() {
    var counterRef = get(counter);
    counter.set(counterRef + 1);
}
8
Joseph Allain

Ce n'est pas exactement ce que vous avez demandé (import) mais cette méthode sert le même but: vous passez votre boutique en argument, donc pas besoin d'importer dans le .js votre boutique

import {get} from 'svelte/store'
export function add(yourStore) {
   let _yourStore = get(yourStore)
   yourStore.set(_yourStore + 1)
}

Il ne vous reste plus qu'à importer votre boutique dans votre composant Svelte.
Il permet de ne pas se soucier de stocker les importations dans votre .js, mais uniquement sur votre composant.

0
comte