Ich bin nicht bewusst ein Standard Weg dies zu tun, auch dies wäre für alle Web-Frameworks. Das ist ein interessantes und gültiges Problem.
Wenn ich etwas dagegen zu tun:
- ich diese Strings überall verfügbar sein möchte.
- Ich würde es vorziehen, diese Zeichenfolgen nicht in allen Komponenten zu importieren und jedes Mal, wenn ich sie verwenden musste.
- Ich möchte, dass der Speicherplatz beschreibend ist, so dass ich nicht hin und her gehen muss, um zu überprüfen, was ich importieren möchte. [Der schwierigste Teil meiner Meinung nach] 1
Um das zu erreichen, wir verwenden können:
Vuex
- A
services/some.js
-Datei, die ein object
exportiert.
Plugins
Ich würde mit plugins weil:
ich die Saiten durch lediglich mit this
in einer Komponente bekommen, verhindert Vue.use(plugin)
das gleiche Plugin zweimal Gewöhnung, und zur gleichen Zeit erreicht all die Punkte (3. wird immer noch eine harte Nuss zu knacken sein). Nur der Nachteil, dass ich davon weiß, könnte die Vue-Instanz überladen.
So können Plugin wie gestaltet sein:
dieser
// stringsHelperPlugin.js
const STRING_CONST = {
[component_1_Name]: {
key1: val1,
key2: val2,
....
},
[component_2_Name]: {
key1: val1,
key2: val2,
....
},
...
}
StringConst.install = function (Vue, options) {
Vue.prototype.$getStringFor = (componentName, key) => {
return STRING_CONST['componentName'][key]
}
}
export default StringConst
in main.js
verwendet wie werden können:
import StringConst from 'path/to/plugin'
Vue.use(StringConst)
und man konnte dies in einer Komponente Vorlage wie folgt:
<div>
{{ $getStringFor(<component_1_name>, 'key1') }}
</div>
Sie können etwas wie this.$getStringFor(<componentName>, key)
in einer Methode verwenden. So ziemlich alles, was zu bieten hat.
Warum ich den dritten Punkt nennen härtesten ist: Maintainance wenn Sie jemals Komponentennamen zu ändern, haben Sie vielleicht auch in der vom Plugin zurückgegeben object
ändern. Dieses Problem kann wiederum auf viele Arten gelöst werden.
Sie müssen Vuex nicht verwenden, wenn Sie es nicht bereits in Ihrer App verwenden. Es könnte zu viel werden - Sie können ein einfaches Objekt verwenden und alles speichern http://stackoverflow.com/questions/42326821/ Ich benutze-vue-js-und-Python-Flasche-wie-mein-Backend-ich-möchte-etwas-lokale-vari/42326978 # 42326978 –