


Detaillierte Erläuterung der modularen (Modul-)Beispiele von Vuex
Dieser Artikel stellt Ihnen hauptsächlich die Vuex-Modularität vor. Der Herausgeber findet ihn ziemlich gut. Jetzt teile ich ihn mit Ihnen und hoffe, dass er Ihnen helfen kann.
1. Warum Modularisierung erforderlich ist
Die zuvor erwähnten Beispiele werden alle in einem Zustandsbaum ausgeführt. Wenn ein Projekt relativ groß ist, werden alle Zustände zusammengefasst. Holen Sie sich ein relativ großes Objekt, das aufbläht und schwer zu pflegen ist. Um dieses Problem zu lösen, können wir mit Vuex den Speicher in Module unterteilen. Jedes Modul hat seinen eigenen Status, seine eigene Mutation, seine eigene Aktion und seinen eigenen Getter. Schauen wir uns unten ein typisches Modularisierungsbeispiel an >
2. Der lokale Status des Modulsconst moduleA = { state: {....}, mutations: {....}, actions: {....}, getters: {....} } const moduleB = { state: {....}, mutations: {....}, actions: {....}, getters: {....} } const store = new Vuex.Store({ modules: { a: moduleA, b: moduleB } }) store.state.a // moduleA的状态 store.state.b // moduleB的状态
Die Mutation und der Getter innerhalb des Moduls. Der erste empfangene Parameter (Status) ist das lokale Statusobjekt des Moduls, rootState
3. Namespace (Lesen Sie es unbedingt hier, sonst werden Sie manchmal ausgetrickst)const moduleA = { state: { count: 0}, mutations: { increment (state) { // state是模块的局部状态,也就是上面的state state.count++ } }, getters: { doubleCount (state, getters, rootState) { // 参数 state为当前局部状态,rootState为根节点状态 return state.count * 2 } }, actions: { incremtnIfOddRootSum ( { state, commit, rootState } ) { // 参数 state为当前局部状态,rootState为根节点状态 if ((state.cont + rootState.count) % 2 === 1) { commit('increment') } } } }
In allen oben genannten Beispielen werden die Aktionen, Mutationen und Getter innerhalb des Moduls im globalen Namespace If registriert Sie befinden sich in ModulA und ModulB und deklarieren Aktionen, Mutationen oder Getter (some genannt) mit demselben Namen. Wenn Sie store.commit('some') verwenden, antworten die Module A und B gleichzeitig. Wenn Sie also möchten, dass Ihr Modul eigenständiger und wiederverwendbar ist, können Sie namespaced: true hinzufügen, um es zu einem Namespace-Modul zu machen. Wenn ein Modul registriert ist, rufen alle seine Getter, Aktionen und Mutationen automatisch den gesamten Namen entsprechend dem vom Modul registrierten Pfad auf. Beispiel:
Getter und Aktionen mit aktiviertem Namespace werden lokalisiert empfangen Getter, Dispatch und Commit. Sie müssen im selben Modul kein Space-Namenspräfix hinzufügen, wenn Sie Modulinhalte verwenden, und Sie müssen den Code im Modul nach der Änderung des Namespace-Attributs nicht ändern.const store = new Vuex.Store({ modules: { account: { namespaced: true, state: {...}, // 模块内的状态已经是嵌套的,namespaced不会有影响 getters: { // 每一条注释为调用方法 isAdmin () { ... } // getters['account/isAdmin'] }, actions: { login () {...} // dispatch('account/login') }, mutations: { login () {...} // commit('account/login') }, modules: { // 继承父模块的命名空间 myPage : { state: {...}, getters: { profile () {...} // getters['account/profile'] } }, posts: { // 进一步嵌套命名空间 namespaced: true, getters: { popular () {...} // getters['account/posts/popular'] } } } } } })
4. Greifen Sie auf globale Inhalte (Global Assets) innerhalb des Namespace-Moduls zu.
Wenn Sie globalen Status und Getter verwenden möchten, werden roorState und rootGetter als dritter und vierter Parameter an den Getter übergeben . Die Aktion wird auch über die Attribute des Kontextobjekts übergeben. Wenn Sie die Aktion verteilen oder die Mutation im globalen Namespace übermitteln müssen, übergeben Sie einfach { root: true } als dritten Parameter zum Versenden oder Festschreiben.
5. Bindungsfunktionen mit Namespacemodules: { foo: { namespaced: true, getters: { // 在这个被命名的模块里,getters被局部化了 // 你可以使用getter的第四个参数来调用 'rootGetters' someGetter (state, getters, rootSate, rootGetters) { getters.someOtherGetter // -> 局部的getter, ‘foo/someOtherGetter' rootGetters.someOtherGetter // -> 全局getter, 'someOtherGetter' } }, actions: { // 在这个模块里,dispatch和commit也被局部化了 // 他们可以接受root属性以访问跟dispatch和commit smoeActino ({dispatch, commit, getters, rootGetters }) { getters.someGetter // 'foo/someGetter' rootGetters.someGetter // 'someGetter' dispatch('someOtherAction') // 'foo/someOtherAction' dispatch('someOtherAction', null, {root: true}) // => ‘someOtherAction' commit('someMutation') // 'foo/someMutation' commit('someMutation', null, { root: true }) // someMutation } } } }
Wie bereits erwähnt, muss der Namespace nach dem Einbringen beim Aufruf geschrieben werden, was jedoch umständlicher ist, insbesondere wenn es um Multi geht Verschachtelung auf -Ebene (verschachteln Sie während der Entwicklung natürlich nicht zu viel, sonst wird Ihnen schwindelig...)
Werfen wir einen Blick auf die allgemeine Schreibmethode
computed: { ...mapState({ a: state => state.some.nested.module.a, b: state => state.some.nested.module.b }), methods: { ...mapActions([ 'some/nested/module/foo', 'some/nested/module/bar' ]) } }
computed: { ...mapStates('some/nested/module', { a: state => state.a, b: state => state.b }) }, methods: { ...mapActions('some/nested/module',[ 'foo', 'bar' ]) }
Manchmal können wir mehrere Instanzen eines Moduls erstellen, zum Beispiel:
- Mehrere Stores erstellen , sie teilen sich ein Modul
- Registrieren Sie dasselbe Modul mehrmals in einem Geschäft
const MyModule = { state () { return { foo: 'far' } } }
Der Inhalt der Modularität ist hier abgeschlossen. Diesmal erläutern wir hauptsächlich die Gründe für die Entstehung von Modulen, deren Verwendung, globale und lokale Namensräume für Modulnamen, den lokalen Zugriff auf globale Inhalte und die Zuordnung Funktionen mit Namensräumen. Wiederverwendung gebundener Funktionen und Module.
Zitat
https://vuex.vuejs.org Offizielle Vuex-Dokumentation
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der modularen (Modul-)Beispiele von Vuex. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



So optimieren Sie die Wartbarkeit von Java-Code: Erfahrungen und Ratschläge Im Softwareentwicklungsprozess ist das Schreiben von Code mit guter Wartbarkeit von entscheidender Bedeutung. Wartbarkeit bedeutet, dass Code leicht verstanden, geändert und erweitert werden kann, ohne dass es zu unerwarteten Problemen oder zusätzlichem Aufwand kommt. Für Java-Entwickler ist die Optimierung der Wartbarkeit von Code ein wichtiges Thema. In diesem Artikel werden einige Erfahrungen und Vorschläge geteilt, um Java-Entwicklern dabei zu helfen, die Wartbarkeit ihres Codes zu verbessern. Befolgen Sie standardisierte Benennungsregeln. Standardmäßige Benennungsregeln können die Lesbarkeit des Codes verbessern.

Python ist eine einfache, leicht zu erlernende und effiziente Programmiersprache. Wenn wir jedoch Python-Code schreiben, können Probleme mit übermäßiger Codekomplexität auftreten. Wenn diese Probleme nicht gelöst werden, wird es schwierig, den Code zu warten, fehleranfällig zu machen und die Lesbarkeit und Skalierbarkeit des Codes zu verringern. In diesem Artikel besprechen wir daher, wie man Codekomplexitätsfehler in Python-Code beheben kann. Verständnis der Codekomplexität Die Codekomplexität ist ein Maß für die Art des Codes, der schwer zu verstehen und zu warten ist. In Python gibt es einige Indikatoren, die verwendet werden können

Python wird als höhere Programmiersprache häufig in der Softwareentwicklung verwendet. Obwohl Python viele Vorteile bietet, besteht ein Problem, mit dem viele Python-Programmierer häufig konfrontiert sind, darin, dass der Code weniger wartbar ist. Die Wartbarkeit von Python-Code umfasst die Lesbarkeit, Skalierbarkeit und Wiederverwendbarkeit des Codes. In diesem Artikel konzentrieren wir uns darauf, wie das Problem der schlechten Wartbarkeit von Python-Code gelöst werden kann. 1. Lesbarkeit des Codes Die Lesbarkeit des Codes bezieht sich auf die Lesbarkeit des Codes, die den Kern der Wartbarkeit des Codes darstellt.

Während des Entwicklungsprozesses von Python stoßen wir häufig auf Fehler, bei denen das Modul nicht gefunden wurde. Die spezifische Manifestation dieses Fehlers besteht darin, dass Python beim Importieren des Moduls einen von zwei Fehlern meldet: ModuleNotFoundError oder ImportError. Dieser Fehler ist sehr ärgerlich und kann die ordnungsgemäße Ausführung des Programms verhindern. In diesem Artikel werden wir uns daher mit den Ursachen dieses Fehlers und der Lösung befassen. ModuleNotFoundError und ImportError in Pyth
![Wie kann das Problem „Fehler: [vuex] ändert den Vuex-Speicherstatus außerhalb von Mutationshandlern nicht' gelöst werden, wenn Vuex in einer Vue-Anwendung verwendet wird?](https://img.php.cn/upload/article/000/000/164/168760467048976.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
In Vue-Anwendungen ist die Verwendung von Vuex eine gängige Methode zur Zustandsverwaltung. Bei der Verwendung von vuex kann es jedoch manchmal zu einer Fehlermeldung kommen: „Fehler:[vuex]donotmutatevuexstorestateoutsidemutationhandlers“ Was bedeutet diese Fehlermeldung? Warum erscheint diese Fehlermeldung? Wie kann dieser Fehler behoben werden? In diesem Artikel wird dieses Problem ausführlich behandelt. Die Fehlermeldung enthält

Vue2.x ist derzeit eines der beliebtesten Front-End-Frameworks, das Vuex als Lösung für die Verwaltung des globalen Status bereitstellt. Durch die Verwendung von Vuex kann die Statusverwaltung klarer und einfacher zu warten sein. Im Folgenden werden die Best Practices von Vuex vorgestellt, um Entwicklern dabei zu helfen, Vuex besser zu nutzen und die Codequalität zu verbessern. 1. Verwenden Sie einen modularen Organisationsstatus, um alle Status der Anwendung zu verwalten und den Status aus den Komponenten zu extrahieren, wodurch die Statusverwaltung klarer und verständlicher wird. Bei Anwendungen mit vielen Zuständen müssen Module verwendet werden

Was macht Vuex? Vue-Beamter: Statusverwaltungstool Was ist Statusverwaltung? Der Status muss von mehreren Komponenten gemeinsam genutzt werden, und er reagiert. Sobald er sich ändert, ändert sich alles. Zum Beispiel einige global verwendete Statusinformationen: Benutzeranmeldestatus, Benutzername, geografische Standortinformationen, Artikel im Warenkorb usw. Derzeit benötigen wir ein solches Tool für die globale Statusverwaltung, und Vuex ist ein solches Tool. Einzelseiten-Statusverwaltung Ansicht–>Aktionen–>Status Ansichtsebene (Ansicht) löst Aktion (Aktion) aus, um den Status (Status) zu ändern, und reagiert zurück auf Ansichtsebene (Ansicht) vuex (Vue3.
![Wie löse ich das Problem „Fehler: [vuex] unbekannter Aktionstyp: xxx' bei der Verwendung von vuex in einer Vue-Anwendung?](https://img.php.cn/upload/article/000/887/227/168766615217161.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
In Vue.js-Projekten ist Vuex ein sehr nützliches Statusverwaltungstool. Es hilft uns, den Status zwischen mehreren Komponenten zu teilen und bietet eine zuverlässige Möglichkeit, Statusänderungen zu verwalten. Bei der Verwendung von vuex tritt jedoch manchmal der Fehler „Fehler:[vuex]unknownactiontype:xxx“ auf. In diesem Artikel werden die Ursache und Lösung dieses Fehlers erläutert. 1. Fehlerursache Bei der Verwendung von vuex müssen wir einige Aktionen und mu definieren
