Meine berechneten Werte erhalten Funktion wird nie ausgeführt, wenn die VM erstellt wird, so dass der Wert, den es sollte nie zugewiesen ist.Vue.js berechneter Wert nie beim Start ausgeführt
Komischerweise wird es ausgeführt, wenn ich versuche, auf den Wert zuzugreifen, es wird nur nie ausgeführt, wenn die App startet.
Grundsätzlich sollte ich den Wert der Haut berechnen und beim Start oder wenn die Stylesheet-Verknüpfung geändert werden sollte, um die richtige Haut zu laden.
Es funktioniert gut, das Problem ist, dass es nicht beim Start ausgeführt wird. Muss ich eine Hacky-Lösung verwenden, um den Wert einmal in der gemounteten Funktion der VM zu bekommen? Oder fehlt mir hier etwas ...
computed: {
skin: {
get: function() {
var mySkin = "my/skin/string";
if (window.localStorage.getItem("skin") === null) {
window.localStorage.setItem("skin", mySkin);
jquery("link[id='skin']").attr("href", "css/skins/" + mySkin + ".css");
} else {
mySkin = window.localStorage.getItem("skin");
window.localStorage.setItem("skin", mySkin);
jquery("link[id='skin']").attr("href", "css/skins/" + mySkin + ".css");
}
var hey = this.skin;
return mySkin;
},
set: function (val) {
window.localStorage.setItem("skin", val);
jquery("link[id='skin']").attr("href", "css/skins/" + val + ".css");
}
}
}
Dies ist fast genau das gleiche wie einen berechneten Wert für die Haut mit einem Einrichter und mit einem Getter, aber mit Setter/Getter ich gesetzt haben würde und in der gleichen Funktion speichern, und der Getter gibt den aktuellen Wert zurück. Die Frage ist mehr "warum wird mein berechneter Wert beim Start nicht berechnet" und ich vermute, dass die Antwort lautet "weil nichts versucht, es zu bekommen". Ich dachte, dass berechnete Werte einmal beim Start berechnet werden, aber es scheint, dass berechnete Werte im Grunde NULL-Werte sind, bis etwas sie bekommt, was kein riesiges Problem ist, nur dass mein Setter beim Start ausgeführt werden muss, so dass ich es brauche. –
@SimonHyll sieht richtig aus. – wostex