|
@@ -0,0 +1,743 @@
|
|
|
|
+
|
|
|
|
+<!DOCTYPE HTML>
|
|
|
|
+<html lang="en" >
|
|
|
|
+ <head>
|
|
|
|
+ <meta charset="UTF-8">
|
|
|
|
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
|
|
|
|
+ <title>Modules · Vuex</title>
|
|
|
|
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
|
|
+ <meta name="description" content="">
|
|
|
|
+ <meta name="generator" content="GitBook 3.2.2">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <link rel="stylesheet" href="../gitbook/style.css">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <link rel="stylesheet" href="../gitbook/gitbook-plugin-prism/prism.css">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <link rel="stylesheet" href="../gitbook/gitbook-plugin-search/search.css">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <link rel="stylesheet" href="../gitbook/gitbook-plugin-theme-vuejs/vue.css">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <meta name="HandheldFriendly" content="true"/>
|
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
|
|
|
|
+ <meta name="apple-mobile-web-app-capable" content="yes">
|
|
|
|
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
|
|
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
|
|
|
|
+ <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <link rel="next" href="structure.html" />
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <link rel="prev" href="actions.html" />
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </head>
|
|
|
|
+ <body>
|
|
|
|
+
|
|
|
|
+<div class="book">
|
|
|
|
+ <div class="book-summary">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+<div id="book-search-input" role="search">
|
|
|
|
+ <input type="text" placeholder="Type to search" />
|
|
|
|
+</div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <nav role="navigation">
|
|
|
|
+
|
|
|
|
+<script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=vuejs" id="_carbonads_js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+<ul class="summary">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.1" data-path="./">
|
|
|
|
+
|
|
|
|
+ <a href="./">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Introduction
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.2" >
|
|
|
|
+
|
|
|
|
+ <a target="_blank" href="https://github.com/vuejs/vuex/releases">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Release Notes
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.3" data-path="installation.html">
|
|
|
|
+
|
|
|
|
+ <a href="installation.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Installation
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.4" data-path="intro.html">
|
|
|
|
+
|
|
|
|
+ <a href="intro.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ What is Vuex?
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.5" data-path="getting-started.html">
|
|
|
|
+
|
|
|
|
+ <a href="getting-started.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Getting Started
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.6" data-path="core-concepts.html">
|
|
|
|
+
|
|
|
|
+ <a href="core-concepts.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Core Concepts
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <ul class="articles">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.6.1" data-path="state.html">
|
|
|
|
+
|
|
|
|
+ <a href="state.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ State
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.6.2" data-path="getters.html">
|
|
|
|
+
|
|
|
|
+ <a href="getters.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Getters
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.6.3" data-path="mutations.html">
|
|
|
|
+
|
|
|
|
+ <a href="mutations.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Mutations
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.6.4" data-path="actions.html">
|
|
|
|
+
|
|
|
|
+ <a href="actions.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Actions
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter active" data-level="1.6.5" data-path="modules.html">
|
|
|
|
+
|
|
|
|
+ <a href="modules.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Modules
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </ul>
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.7" data-path="structure.html">
|
|
|
|
+
|
|
|
|
+ <a href="structure.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Application Structure
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.8" data-path="plugins.html">
|
|
|
|
+
|
|
|
|
+ <a href="plugins.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Plugins
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.9" data-path="strict.html">
|
|
|
|
+
|
|
|
|
+ <a href="strict.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Strict Mode
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.10" data-path="forms.html">
|
|
|
|
+
|
|
|
|
+ <a href="forms.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Form Handling
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.11" data-path="testing.html">
|
|
|
|
+
|
|
|
|
+ <a href="testing.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Testing
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.12" data-path="hot-reload.html">
|
|
|
|
+
|
|
|
|
+ <a href="hot-reload.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Hot Reloading
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+ <li class="chapter " data-level="1.13" data-path="api.html">
|
|
|
|
+
|
|
|
|
+ <a href="api.html">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ API Reference
|
|
|
|
+
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </li>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <li class="divider"></li>
|
|
|
|
+
|
|
|
|
+ <li>
|
|
|
|
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
|
|
|
|
+ Published with GitBook
|
|
|
|
+ </a>
|
|
|
|
+ </li>
|
|
|
|
+</ul>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </nav>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <div class="book-body">
|
|
|
|
+
|
|
|
|
+ <div class="body-inner">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+<div class="book-header" role="navigation">
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <!-- Title -->
|
|
|
|
+ <h1>
|
|
|
|
+ <i class="fa fa-circle-o-notch fa-spin"></i>
|
|
|
|
+ <a href="." >Modules</a>
|
|
|
|
+ </h1>
|
|
|
|
+</div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <div class="page-wrapper" tabindex="-1" role="main">
|
|
|
|
+ <div class="page-inner">
|
|
|
|
+
|
|
|
|
+<div id="book-search-results">
|
|
|
|
+ <div class="search-noresults">
|
|
|
|
+
|
|
|
|
+ <section class="normal markdown-section">
|
|
|
|
+
|
|
|
|
+ <h1 id="modules">Modules</h1>
|
|
|
|
+<p>Due to using a single state tree, all state of our application is contained inside one big object. However, as our application grows in scale, the store can get really bloated.</p>
|
|
|
|
+<p>To help with that, Vuex allows us to divide our store into <strong>modules</strong>. Each module can contain its own state, mutations, actions, getters, and even nested modules - it's fractal all the way down:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">const</span> moduleA <span class="token operator">=</span> <span class="token punctuation">{</span>
|
|
|
|
+ state<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ mutations<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+
|
|
|
|
+<span class="token keyword">const</span> moduleB <span class="token operator">=</span> <span class="token punctuation">{</span>
|
|
|
|
+ state<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ mutations<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+
|
|
|
|
+<span class="token keyword">const</span> store <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Vuex<span class="token punctuation">.</span>Store</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
|
|
|
+ modules<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ a<span class="token punctuation">:</span> moduleA<span class="token punctuation">,</span>
|
|
|
|
+ b<span class="token punctuation">:</span> moduleB
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+
|
|
|
|
+store<span class="token punctuation">.</span>state<span class="token punctuation">.</span>a <span class="token comment" spellcheck="true">// -> `moduleA`'s state</span>
|
|
|
|
+store<span class="token punctuation">.</span>state<span class="token punctuation">.</span>b <span class="token comment" spellcheck="true">// -> `moduleB`'s state</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<h3 id="module-local-state">Module Local State</h3>
|
|
|
|
+<p>Inside a module's mutations and getters, the first argument received will be <strong>the module's local state</strong>.</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">const</span> moduleA <span class="token operator">=</span> <span class="token punctuation">{</span>
|
|
|
|
+ state<span class="token punctuation">:</span> <span class="token punctuation">{</span> count<span class="token punctuation">:</span> <span class="token number">0</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ mutations<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ increment <span class="token punctuation">(</span>state<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// `state` is the local module state</span>
|
|
|
|
+ state<span class="token punctuation">.</span>count<span class="token operator">++</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ doubleCount <span class="token punctuation">(</span>state<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token keyword">return</span> state<span class="token punctuation">.</span>count <span class="token operator">*</span> <span class="token number">2</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<p>Similarly, inside module actions, <code>context.state</code> will expose the local state, and root state will be exposed as <code>context.rootState</code>:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">const</span> moduleA <span class="token operator">=</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// ...</span>
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ incrementIfOddOnRootSum <span class="token punctuation">(</span><span class="token punctuation">{</span> state<span class="token punctuation">,</span> commit<span class="token punctuation">,</span> rootState <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token punctuation">(</span>state<span class="token punctuation">.</span>count <span class="token operator">+</span> rootState<span class="token punctuation">.</span>count<span class="token punctuation">)</span> <span class="token operator">%</span> <span class="token number">2</span> <span class="token operator">===</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token function">commit</span><span class="token punctuation">(</span><span class="token string">'increment'</span><span class="token punctuation">)</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<p>Also, inside module getters, the root state will be exposed as their 3rd argument:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">const</span> moduleA <span class="token operator">=</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// ...</span>
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ sumWithRootCount <span class="token punctuation">(</span>state<span class="token punctuation">,</span> getters<span class="token punctuation">,</span> rootState<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token keyword">return</span> state<span class="token punctuation">.</span>count <span class="token operator">+</span> rootState<span class="token punctuation">.</span>count
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<h3 id="namespacing">Namespacing</h3>
|
|
|
|
+<p>By default, actions, mutations and getters inside modules are still registered under the <strong>global namespace</strong> - this allows multiple modules to react to the same mutation/action type.</p>
|
|
|
|
+<p>If you want your modules to be more self-contained or reusable, you can mark it as namespaced with <code>namespaced: true</code>. When the module is registered, all of its getters, actions and mutations will be automatically namespaced based on the path the module is registered at. For example:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">const</span> store <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Vuex<span class="token punctuation">.</span>Store</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
|
|
|
+ modules<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ account<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ namespaced<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ <span class="token comment" spellcheck="true">// module assets</span>
|
|
|
|
+ state<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token comment" spellcheck="true">// module state is already nested and not affected by namespace option</span>
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ isAdmin <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span> <span class="token comment" spellcheck="true">// -> getters['account/isAdmin']</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ login <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span> <span class="token comment" spellcheck="true">// -> dispatch('account/login')</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ mutations<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ login <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span> <span class="token comment" spellcheck="true">// -> commit('account/login')</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ <span class="token comment" spellcheck="true">// nested modules</span>
|
|
|
|
+ modules<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// inherits the namespace from parent module</span>
|
|
|
|
+ myPage<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ state<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ profile <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span> <span class="token comment" spellcheck="true">// -> getters['account/profile']</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ <span class="token comment" spellcheck="true">// further nest the namespace</span>
|
|
|
|
+ posts<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ namespaced<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ state<span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ popular <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span> <span class="token comment" spellcheck="true">// -> getters['account/posts/popular']</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<p>Namespaced getters and actions will receive localized <code>getters</code>, <code>dispatch</code> and <code>commit</code>. In other words, you can use the module assets without writing prefix in the same module. Toggling between namespaced or not does not affect the code inside the module.</p>
|
|
|
|
+<h4 id="accessing-global-assets-in-namespaced-modules">Accessing Global Assets in Namespaced Modules</h4>
|
|
|
|
+<p>If you want to use global state and getters, <code>rootState</code> and <code>rootGetters</code> are passed as the 3rd and 4th arguments to getter functions, and also exposed as properties on the <code>context</code> object passed to action functions.</p>
|
|
|
|
+<p>To dispatch actions or commit mutations in the global namespace, pass <code>{ root: true }</code> as the 3rd argument to <code>dispatch</code> and <code>commit</code>.</p>
|
|
|
|
+<pre class="language-"><code class="lang-js">modules<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ foo<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ namespaced<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ getters<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// `getters` is localized to this module's getters</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// you can use rootGetters via 4th argument of getters</span>
|
|
|
|
+ someGetter <span class="token punctuation">(</span>state<span class="token punctuation">,</span> getters<span class="token punctuation">,</span> rootState<span class="token punctuation">,</span> rootGetters<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ getters<span class="token punctuation">.</span>someOtherGetter <span class="token comment" spellcheck="true">// -> 'foo/someOtherGetter'</span>
|
|
|
|
+ rootGetters<span class="token punctuation">.</span>someOtherGetter <span class="token comment" spellcheck="true">// -> 'someOtherGetter'</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ someOtherGetter<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// dispatch and commit are also localized for this module</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// they will accept `root` option for the root dispatch/commit</span>
|
|
|
|
+ someAction <span class="token punctuation">(</span><span class="token punctuation">{</span> dispatch<span class="token punctuation">,</span> commit<span class="token punctuation">,</span> getters<span class="token punctuation">,</span> rootGetters <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ getters<span class="token punctuation">.</span>someGetter <span class="token comment" spellcheck="true">// -> 'foo/someGetter'</span>
|
|
|
|
+ rootGetters<span class="token punctuation">.</span>someGetter <span class="token comment" spellcheck="true">// -> 'someGetter'</span>
|
|
|
|
+
|
|
|
|
+ <span class="token function">dispatch</span><span class="token punctuation">(</span><span class="token string">'someOtherAction'</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true">// -> 'foo/someOtherAction'</span>
|
|
|
|
+ <span class="token function">dispatch</span><span class="token punctuation">(</span><span class="token string">'someOtherAction'</span><span class="token punctuation">,</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> root<span class="token punctuation">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true">// -> 'someOtherAction'</span>
|
|
|
|
+
|
|
|
|
+ <span class="token function">commit</span><span class="token punctuation">(</span><span class="token string">'someMutation'</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true">// -> 'foo/someMutation'</span>
|
|
|
|
+ <span class="token function">commit</span><span class="token punctuation">(</span><span class="token string">'someMutation'</span><span class="token punctuation">,</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token punctuation">{</span> root<span class="token punctuation">:</span> <span class="token boolean">true</span> <span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token comment" spellcheck="true">// -> 'someMutation'</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ someOtherAction <span class="token punctuation">(</span>ctx<span class="token punctuation">,</span> payload<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<h4 id="register-global-action-in-namespaced-modules">Register Global Action in Namespaced Modules</h4>
|
|
|
|
+<p>If you want to register global actions in namespaced modules, you can mark it with <code>root: true</code> and place the action definition to function <code>handler</code>. For example:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token punctuation">{</span>
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ someOtherAction <span class="token punctuation">(</span><span class="token punctuation">{</span>dispatch<span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token function">dispatch</span><span class="token punctuation">(</span><span class="token string">'someAction'</span><span class="token punctuation">)</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ modules<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ foo<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ namespaced<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
|
|
+
|
|
|
|
+ actions<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ someAction<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ root<span class="token punctuation">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
|
|
|
|
+ handler <span class="token punctuation">(</span>namespacedContext<span class="token punctuation">,</span> payload<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token operator">...</span> <span class="token punctuation">}</span> <span class="token comment" spellcheck="true">// -> 'someAction'</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<h4 id="binding-helpers-with-namespace">Binding Helpers with Namespace</h4>
|
|
|
|
+<p>When binding a namespaced module to components with the <code>mapState</code>, <code>mapGetters</code>, <code>mapActions</code> and <code>mapMutations</code> helpers, it can get a bit verbose:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js">computed<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token operator">...</span><span class="token function">mapState</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
|
|
|
+ a<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> state<span class="token punctuation">.</span>some<span class="token punctuation">.</span>nested<span class="token punctuation">.</span>module<span class="token punctuation">.</span>a<span class="token punctuation">,</span>
|
|
|
|
+ b<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> state<span class="token punctuation">.</span>some<span class="token punctuation">.</span>nested<span class="token punctuation">.</span>module<span class="token punctuation">.</span>b
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+methods<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token operator">...</span><span class="token function">mapActions</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
|
|
|
+ <span class="token string">'some/nested/module/foo'</span><span class="token punctuation">,</span>
|
|
|
|
+ <span class="token string">'some/nested/module/bar'</span>
|
|
|
|
+ <span class="token punctuation">]</span><span class="token punctuation">)</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<p>In such cases, you can pass the module namespace string as the first argument to the helpers so that all bindings are done using that module as the context. The above can be simplified to:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js">computed<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token operator">...</span><span class="token function">mapState</span><span class="token punctuation">(</span><span class="token string">'some/nested/module'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
|
|
|
|
+ a<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> state<span class="token punctuation">.</span>a<span class="token punctuation">,</span>
|
|
|
|
+ b<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> state<span class="token punctuation">.</span>b
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+methods<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token operator">...</span><span class="token function">mapActions</span><span class="token punctuation">(</span><span class="token string">'some/nested/module'</span><span class="token punctuation">,</span> <span class="token punctuation">[</span>
|
|
|
|
+ <span class="token string">'foo'</span><span class="token punctuation">,</span>
|
|
|
|
+ <span class="token string">'bar'</span>
|
|
|
|
+ <span class="token punctuation">]</span><span class="token punctuation">)</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<p>Furthermore, you can create namespaced helpers by using <code>createNamespacedHelpers</code>. It returns an object having new component binding helpers that are bound with the given namespace value:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">import</span> <span class="token punctuation">{</span> createNamespacedHelpers <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'vuex'</span>
|
|
|
|
+
|
|
|
|
+<span class="token keyword">const</span> <span class="token punctuation">{</span> mapState<span class="token punctuation">,</span> mapActions <span class="token punctuation">}</span> <span class="token operator">=</span> <span class="token function">createNamespacedHelpers</span><span class="token punctuation">(</span><span class="token string">'some/nested/module'</span><span class="token punctuation">)</span>
|
|
|
|
+
|
|
|
|
+<span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
|
|
|
|
+ computed<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// look up in `some/nested/module`</span>
|
|
|
|
+ <span class="token operator">...</span><span class="token function">mapState</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
|
|
|
+ a<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> state<span class="token punctuation">.</span>a<span class="token punctuation">,</span>
|
|
|
|
+ b<span class="token punctuation">:</span> state <span class="token operator">=</span><span class="token operator">></span> state<span class="token punctuation">.</span>b
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ methods<span class="token punctuation">:</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// look up in `some/nested/module`</span>
|
|
|
|
+ <span class="token operator">...</span><span class="token function">mapActions</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
|
|
|
|
+ <span class="token string">'foo'</span><span class="token punctuation">,</span>
|
|
|
|
+ <span class="token string">'bar'</span>
|
|
|
|
+ <span class="token punctuation">]</span><span class="token punctuation">)</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<h4 id="caveat-for-plugin-developers">Caveat for Plugin Developers</h4>
|
|
|
|
+<p>You may care about unpredictable namespacing for your modules when you create a <a href="plugins.html">plugin</a> that provides the modules and let users add them to a Vuex store. Your modules will be also namespaced if the plugin users add your modules under a namespaced module. To adapt this situation, you may need to receive a namespace value via your plugin option:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token comment" spellcheck="true">// get namespace value via plugin option</span>
|
|
|
|
+<span class="token comment" spellcheck="true">// and returns Vuex plugin function</span>
|
|
|
|
+<span class="token keyword">export</span> <span class="token keyword">function</span> createPlugin <span class="token punctuation">(</span>options <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token keyword">return</span> <span class="token keyword">function</span> <span class="token punctuation">(</span>store<span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// add namespace to plugin module's types</span>
|
|
|
|
+ <span class="token keyword">const</span> namespace <span class="token operator">=</span> options<span class="token punctuation">.</span>namespace <span class="token operator">||</span> <span class="token string">''</span>
|
|
|
|
+ store<span class="token punctuation">.</span><span class="token function">dispatch</span><span class="token punctuation">(</span>namespace <span class="token operator">+</span> <span class="token string">'pluginAction'</span><span class="token punctuation">)</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<h3 id="dynamic-module-registration">Dynamic Module Registration</h3>
|
|
|
|
+<p>You can register a module <strong>after</strong> the store has been created with the <code>store.registerModule</code> method:</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token comment" spellcheck="true">// register a module `myModule`</span>
|
|
|
|
+store<span class="token punctuation">.</span><span class="token function">registerModule</span><span class="token punctuation">(</span><span class="token string">'myModule'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// ...</span>
|
|
|
|
+<span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+
|
|
|
|
+<span class="token comment" spellcheck="true">// register a nested module `nested/myModule`</span>
|
|
|
|
+store<span class="token punctuation">.</span><span class="token function">registerModule</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'nested'</span><span class="token punctuation">,</span> <span class="token string">'myModule'</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// ...</span>
|
|
|
|
+<span class="token punctuation">}</span><span class="token punctuation">)</span>
|
|
|
|
+</code></pre>
|
|
|
|
+<p>The module's state will be exposed as <code>store.state.myModule</code> and <code>store.state.nested.myModule</code>.</p>
|
|
|
|
+<p>Dynamic module registration makes it possible for other Vue plugins to also leverage Vuex for state management by attaching a module to the application's store. For example, the <a href="https://github.com/vuejs/vuex-router-sync" target="_blank"><code>vuex-router-sync</code></a> library integrates vue-router with vuex by managing the application's route state in a dynamically attached module.</p>
|
|
|
|
+<p>You can also remove a dynamically registered module with <code>store.unregisterModule(moduleName)</code>. Note you cannot remove static modules (declared at store creation) with this method.</p>
|
|
|
|
+<p>It may be likely that you want to preserve the previous state when registering a new module, such as preserving state from a Server Side Rendered app. You can do achieve this with <code>preserveState</code> option: <code>store.registerModule('a', module, { preserveState: true })</code></p>
|
|
|
|
+<h3 id="module-reuse">Module Reuse</h3>
|
|
|
|
+<p>Sometimes we may need to create multiple instances of a module, for example:</p>
|
|
|
|
+<ul>
|
|
|
|
+<li>Creating multiple stores that use the same module (e.g. To <a href="https://ssr.vuejs.org/en/structure.html#avoid-stateful-singletons" target="_blank">avoid stateful singletons in the SSR</a> when the <code>runInNewContext</code> option is <code>false</code> or <code>'once'</code>);</li>
|
|
|
|
+<li>Register the same module multiple times in the same store.</li>
|
|
|
|
+</ul>
|
|
|
|
+<p>If we use a plain object to declare the state of the module, then that state object will be shared by reference and cause cross store/module state pollution when it's mutated.</p>
|
|
|
|
+<p>This is actually the exact same problem with <code>data</code> inside Vue components. So the solution is also the same - use a function for declaring module state (supported in 2.3.0+):</p>
|
|
|
|
+<pre class="language-"><code class="lang-js"><span class="token keyword">const</span> MyReusableModule <span class="token operator">=</span> <span class="token punctuation">{</span>
|
|
|
|
+ state <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
|
|
|
+ <span class="token keyword">return</span> <span class="token punctuation">{</span>
|
|
|
|
+ foo<span class="token punctuation">:</span> <span class="token string">'bar'</span>
|
|
|
|
+ <span class="token punctuation">}</span>
|
|
|
|
+ <span class="token punctuation">}</span><span class="token punctuation">,</span>
|
|
|
|
+ <span class="token comment" spellcheck="true">// mutations, actions, getters...</span>
|
|
|
|
+<span class="token punctuation">}</span>
|
|
|
|
+</code></pre>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </section>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="search-results">
|
|
|
|
+ <div class="has-results">
|
|
|
|
+
|
|
|
|
+ <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
|
|
|
|
+ <ul class="search-results-list"></ul>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <div class="no-results">
|
|
|
|
+
|
|
|
|
+ <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+</div>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <script src="//m.servedby-buysellads.com/monetization.js" type="text/javascript"></script>
|
|
|
|
+ <div class="bsa-cpc"></div>
|
|
|
|
+ <script>
|
|
|
|
+ (function(){
|
|
|
|
+ if(typeof _bsa !== 'undefined' && _bsa) {
|
|
|
|
+ _bsa.init('default', 'CKYD62QM', 'placement:vuejsorg', {
|
|
|
|
+ target: '.bsa-cpc',
|
|
|
|
+ align: 'horizontal',
|
|
|
|
+ disable_css: 'true'
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ })();
|
|
|
|
+ </script>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <a href="actions.html" class="navigation navigation-prev " aria-label="Previous page: Actions">
|
|
|
|
+ <i class="fa fa-angle-left"></i>
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <a href="structure.html" class="navigation navigation-next " aria-label="Next page: Application Structure">
|
|
|
|
+ <i class="fa fa-angle-right"></i>
|
|
|
|
+ </a>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ <script>
|
|
|
|
+ var gitbook = gitbook || [];
|
|
|
|
+ gitbook.push(function() {
|
|
|
|
+ gitbook.page.hasChanged({"page":{"title":"Modules","level":"1.6.5","depth":2,"next":{"title":"Application Structure","level":"1.7","depth":1,"path":"structure.md","ref":"structure.md","articles":[]},"previous":{"title":"Actions","level":"1.6.4","depth":2,"path":"actions.md","ref":"actions.md","articles":[]},"dir":"ltr"},"config":{"plugins":["edit-link","prism","-highlight","github","-highlight","github"],"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"pluginsConfig":{"edit-link":{"label":"Edit This Page","base":"https://github.com/vuejs/vuex/tree/dev/docs"},"github":{"url":"https://github.com/vuejs/vuex/"},"prism":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":false,"twitter":false,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"theme-vuejs":{},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"theme":"default","pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"variables":{},"title":"Vuex","language":"en","links":{"sharing":{"facebook":false,"twitter":false}},"gitbook":"2.x.x"},"file":{"path":"modules.md","mtime":"2018-04-20T00:44:03.852Z","type":"markdown"},"gitbook":{"version":"3.2.2","time":"2018-04-20T00:47:55.633Z"},"basePath":".","book":{"language":"en"}});
|
|
|
|
+ });
|
|
|
|
+ </script>
|
|
|
|
+</div>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook.js"></script>
|
|
|
|
+ <script src="../gitbook/theme.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-edit-link/plugin.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-github/plugin.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-search/search-engine.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-search/search.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ <script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ </body>
|
|
|
|
+</html>
|
|
|
|
+
|