vuex-help
Version:
a utilies library reduce boilerplate for vuex
662 lines (378 loc) • 39.2 kB
HTML
<html lang="ja" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>API リファレンス · Vuex</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<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="prev" href="hot-reload.html" />
</head>
<body>
<div class="book">
<div class="book-summary">
<div id="book-search-input" role="search">
<input type="text" placeholder="検索すると入力" />
</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">
リリースノート
</a>
</li>
<li class="chapter " data-level="1.3" data-path="installation.html">
<a href="installation.html">
インストール
</a>
</li>
<li class="chapter " data-level="1.4" data-path="intro.html">
<a href="intro.html">
Vuex とは何か?
</a>
</li>
<li class="chapter " data-level="1.5" data-path="getting-started.html">
<a href="getting-started.html">
Vuex 入門
</a>
</li>
<li class="chapter " data-level="1.6" data-path="core-concepts.html">
<a href="core-concepts.html">
コアコンセプト
</a>
<ul class="articles">
<li class="chapter " data-level="1.6.1" data-path="state.html">
<a href="state.html">
ステート
</a>
</li>
<li class="chapter " data-level="1.6.2" data-path="getters.html">
<a href="getters.html">
ゲッター
</a>
</li>
<li class="chapter " data-level="1.6.3" data-path="mutations.html">
<a href="mutations.html">
ミューテーション
</a>
</li>
<li class="chapter " data-level="1.6.4" data-path="actions.html">
<a href="actions.html">
アクション
</a>
</li>
<li class="chapter " data-level="1.6.5" data-path="modules.html">
<a href="modules.html">
モジュール
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.7" data-path="structure.html">
<a href="structure.html">
アプリケーションの構造
</a>
</li>
<li class="chapter " data-level="1.8" data-path="plugins.html">
<a href="plugins.html">
プラグイン
</a>
</li>
<li class="chapter " data-level="1.9" data-path="strict.html">
<a href="strict.html">
厳格モード
</a>
</li>
<li class="chapter " data-level="1.10" data-path="forms.html">
<a href="forms.html">
フォームの扱い
</a>
</li>
<li class="chapter " data-level="1.11" data-path="testing.html">
<a href="testing.html">
テスト
</a>
</li>
<li class="chapter " data-level="1.12" data-path="hot-reload.html">
<a href="hot-reload.html">
ホットリローディング
</a>
</li>
<li class="chapter active" data-level="1.13" data-path="api.html">
<a href="api.html">
API リファレンス
</a>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
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="." >API リファレンス</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="api-リファレンス">API リファレンス</h1>
<h3 id="vuexstore">Vuex.Store</h3>
<pre class="language-"><code class="lang-js"><span class="token keyword">import</span> Vuex <span class="token keyword">from</span> <span class="token string">'vuex'</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> <span class="token operator">...</span>options <span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<h3 id="vuexstore-コンストラクタオプション">Vuex.Store コンストラクタオプション</h3>
<ul>
<li><p><strong>state</strong></p>
<ul>
<li><p>型: <code>Object | Function</code></p>
<p>ストアのための ルートステートオブジェクトです。<a href="state.html">詳細</a></p>
<p>オブジェクトを返す関数を渡す場合、返されたオブジェクトはルートステートとして使用されます。これは特にモジュールの再利用のためにステートオブジェクトを再利用する場合に便利です。<a href="modules.html#モジュールの再利用">詳細</a></p>
</li>
</ul>
</li>
<li><p><strong>mutations</strong></p>
<ul>
<li><p>型: <code>{ [type: string]: Function }</code></p>
<p>ストアにミューテーションを登録します。ハンドラ関数は第一引数に <code>state</code> を常に受け取り(モジュール内で定義されていれば、モジュールのローカルステートを受け取り)、指定されていれば第二引数に <code>payload</code> を受け取ります。</p>
<p><a href="mutations.html">詳細</a></p>
</li>
</ul>
</li>
<li><p><strong>actions</strong></p>
<ul>
<li><p>型: <code>{ [type: string]: Function }</code></p>
<p>ストアにアクションを登録します。ハンドラ関数は次のプロパティを持つ <code>context</code> オブジェクトを受け取ります。:</p>
<pre class="language-"><code class="lang-js"><span class="token punctuation">{</span>
state<span class="token punctuation">,</span> <span class="token comment" spellcheck="true">// `store.state` と同じか、モジュール内にあればローカルステート</span>
rootState<span class="token punctuation">,</span> <span class="token comment" spellcheck="true">// `store.state` と同じ。ただしモジュール内に限る</span>
commit<span class="token punctuation">,</span> <span class="token comment" spellcheck="true">// `store.commit` と同じ</span>
dispatch<span class="token punctuation">,</span> <span class="token comment" spellcheck="true">// `store.dispatch` と同じ</span>
getters<span class="token punctuation">,</span> <span class="token comment" spellcheck="true">// `store.getters` と同じか、モジュール内にあればローカルゲッター</span>
rootGetters <span class="token comment" spellcheck="true">// `store.getters` と同じ。ただしモジュール内に限る</span>
<span class="token punctuation">}</span>
</code></pre>
<p><a href="actions.html">詳細</a></p>
</li>
</ul>
</li>
<li><p><strong>getters</strong></p>
<ul>
<li><p>type: <code>{ [key: string]: Function }</code></p>
<p>ストアにゲッターを登録します. ゲッター関数は次の引数を受け取ります:</p>
<pre class="language-"><code>state, // モジュール内で定義されていればモジュールのローカルステート
getters // store.getters と同じ
</code></pre><p>モジュールで定義されたときの仕様</p>
<pre class="language-"><code>state, // モジュールで定義された場合、モジュールのローカルステート
getters, // 現在のモジュールのモジュールのローカルゲッター
rootState, // グローバルステート
rootGetters // 全てのゲッター
</code></pre><p>登録されたゲッターは <code>store.getters</code> 上に公開されます。</p>
<p><a href="getters.html">詳細</a></p>
</li>
</ul>
</li>
<li><p><strong>modules</strong></p>
<ul>
<li><p>型: <code>Object</code></p>
<p>サブモジュールを含む次のような形式のオブジェクトはストアにマージされます。</p>
<pre class="language-"><code class="lang-js"><span class="token punctuation">{</span>
key<span class="token punctuation">:</span> <span class="token punctuation">{</span>
state<span class="token punctuation">,</span>
mutations
actions<span class="token operator">?</span><span class="token punctuation">,</span>
getters<span class="token operator">?</span><span class="token punctuation">,</span>
modules<span class="token operator">?</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token operator">...</span>
<span class="token punctuation">}</span>
</code></pre>
<p>各モジュールは、ルートオプションに似た <code>state</code> と <code>mutations</code> を含むことができます。モジュールの状態は、モジュールのキーを使って、ストアのルートステートに結合されます。モジュールのミューテーションとゲッターは、第一引数としてルートステートの代わりに、モジュールのローカルステートだけを受け取り、モジュールのアクションの <code>context.state</code> もローカルステートを指すようになります。</p>
<p><a href="modules.html">詳細</a></p>
</li>
</ul>
</li>
<li><p><strong>plugins</strong></p>
<ul>
<li><p>型: <code>Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Function</span><span class="token punctuation">></span></span></code></p>
<p>プラグイン関数の配列は、ストアに適用されます。このプラグインは、ストアだけを引数として受け取り、外部への永続化、ロギング、デバッギングのために、ミューテーションを監視するか、または、 websocket や observable のような外から渡されるデータのためにミューテーションをディスパッチします。</p>
<p><a href="plugins.html">詳細</a></p>
</li>
</ul>
</li>
<li><p><strong>strict</strong></p>
<ul>
<li>型: <code>Boolean</code></li>
<li><p>デフォルト: <code>false</code></p>
<p>Vuex ストアを厳格モードにします。厳格モードでは、ミューテーションハンドラ以外で、 Vuex の状態の変更を行うと、エラーが投げられます。</p>
<p><a href="strict.html">詳細</a></p>
</li>
</ul>
</li>
</ul>
<h3 id="vuexstore-インスタンスプロパティ">Vuex.Store インスタンスプロパティ</h3>
<ul>
<li><p><strong>state</strong></p>
<ul>
<li><p>type: <code>Object</code></p>
<p>ルートステート、読み取り専用です。</p>
</li>
</ul>
</li>
<li><p><strong>getters</strong></p>
<ul>
<li><p>type: <code>Object</code></p>
<p>登録されているゲッターを公開します。読み取り専用です。</p>
</li>
</ul>
</li>
</ul>
<h3 id="vuexstore-インスタンスメソッド">Vuex.Store インスタンスメソッド</h3>
<ul>
<li><p><strong><code>commit(type: string, payload?: any, options?: Object) | commit(mutation: Object, options?: Object)</code></strong></p>
<p>ミューテーションをコミットします。<code>options</code> は<a href="modules.html#名前空間">名前空間付きモジュール</a>で root なミューテーションにコミットできる <code>root: true</code> を持つことできます。<a href="mutations.html">詳細</a></p>
</li>
<li><p><strong><code>dispatch(type: string, payload?: any, options?: Object) | dispatch(action: Object, options?: Object)</code></strong></p>
<p>アクションをディスパッチします。<code>options</code> は<a href="modules.html#名前空間">名前空間付きモジュール</a>で root なアクションにディスパッチできる <code>root: true</code> を持つことできます。 すべてのトリガーされたアクションハンドラを解決するPromiseを返します。<a href="actions.html">詳細</a></p>
</li>
<li><p><strong><code>replaceState(state: Object)</code></strong></p>
<p>ストアのルートステートを置き換えます。これは、ステートのハイドレーションやタイムトラベルのためだけに利用すべきです。</p>
</li>
<li><p><strong><code>watch(getter: Function, cb: Function, options?: Object)</code></strong></p>
<p>リアクティブにゲッター関数の返す値を監視します。値が変わった場合は、コールバックを呼びます。ゲッターはストアの <code>state</code> を最初の引数として、 <code>getters</code> を2番目の引数として受け取ります。 Vue の<code>vm.$watch</code>メソッドと同じオプションをオプションのオブジェクトとして受け付けます。</p>
<p>監視を止める場合は、ハンドラ関数の返り値を関数として呼び出します。</p>
</li>
<li><p><strong><code>subscribe(handler: Function)</code></strong></p>
<p>ストアへのミューテーションを購読します。<code>handler</code> は、全てのミューテーションの後に呼ばれ、引数として、ミューテーション ディスクリプタとミューテーション後の状態を受け取ります。</p>
<pre class="language-"><code class="lang-js">store<span class="token punctuation">.</span><span class="token function">subscribe</span><span class="token punctuation">(</span><span class="token punctuation">(</span>mutation<span class="token punctuation">,</span> state<span class="token punctuation">)</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>mutation<span class="token punctuation">.</span>type<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>mutation<span class="token punctuation">.</span>payload<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
<p>プラグインの中でもっともよく利用されます。<a href="plugins.html">詳細</a></p>
</li>
<li><p><strong><code>subscribeAction(handler: Function)</code></strong></p>
<blockquote>
<p>2.5.0 で新規追加</p>
</blockquote>
<p>ストアアクションを購読します。<code>handler</code> はディスパッチされたアクションごとに呼び出され、アクション記述子と現在のストア状態を引数として受け取ります:</p>
<pre class="language-"><code class="lang-js">store<span class="token punctuation">.</span><span class="token function">subscribeAction</span><span class="token punctuation">(</span><span class="token punctuation">(</span>action<span class="token punctuation">,</span> state<span class="token punctuation">)</span> <span class="token operator">=</span><span class="token operator">></span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>action<span class="token punctuation">.</span>type<span class="token punctuation">)</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>action<span class="token punctuation">.</span>payload<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre>
</li>
</ul>
<p> プラグインで最も一般的に使用されます。<a href="plugins.html">Details</a></p>
<ul>
<li><p><strong><code>registerModule(path: string | Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>, module: Module, options?: Object)</code></strong></p>
<p>動的なモジュールを登録します。<a href="modules.html#dynamic-module-registration">詳細</a></p>
<p><code>options</code> は前の状態を保存する <code>preserveState: true</code> を持つことができます。サーバサイドレンダリングに役立ちます。</p>
</li>
<li><p><strong><code>unregisterModule(path: string | Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span>)</code></strong></p>
<p>動的なモジュールを解除します。<a href="modules.html#dynamic-module-registration">詳細</a></p>
</li>
<li><p><strong><code>hotUpdate(newOptions: Object)</code></strong></p>
<p>新しいアクションとミューテーションをホットスワップします。<a href="hot-reload.html">詳細</a></p>
</li>
</ul>
<h3 id="コンポーネントをバインドするヘルパー">コンポーネントをバインドするヘルパー</h3>
<ul>
<li><p><strong><code>mapState(namespace?: string, map: Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span> | Object): Object</code></strong></p>
<p>ストアのサブツリーを返すコンポーネントの computed オプションを作成します。<a href="state.html#the-mapstate-helper">詳細</a></p>
<p>第1引数は、オプションで名前空間文字列にすることができます。<a href="modules.html#binding-helpers-with-namespace">詳細</a></p>
</li>
<li><p><strong><code>mapGetters(namespace?: string, map: Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span> | Object): Object</code></strong></p>
<p>ゲッターの評価後の値を返すコンポーネントの computed オプションを作成します。<a href="getters.html#the-mapgetters-helper">詳細</a></p>
<p>第1引数は、オプションで名前空間文字列にすることができます。<a href="modules.html#binding-helpers-with-namespace">詳細</a></p>
</li>
<li><p><strong><code>mapActions(namespace?: string, map: Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span> | Object): Object</code></strong></p>
<p>アクションをディスパッチするコンポーネントの methods オプションを作成します。<a href="actions.html#dispatching-actions-in-components">詳細</a></p>
<p>第1引数は、オプションで名前空間文字列にすることができます。<a href="modules.html#binding-helpers-with-namespace">詳細</a></p>
</li>
<li><p><strong><code>mapMutations(namespace?: string, map: Array<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>string</span><span class="token punctuation">></span></span> | Object): Object</code></strong></p>
<p>ミューテーションをコミットするコンポーネントの methods オプションを作成します。<a href="mutations.html#commiting-mutations-in-components">詳細</a></p>
<p>第1引数は、オプションで名前空間文字列にすることができます。<a href="modules.html#binding-helpers-with-namespace">詳細</a></p>
</li>
<li><p><strong><code>createNamespacedHelpers(namespace: string): Object</code></strong></p>
<p>名前空間付けられたコンポーネントバインディングのヘルパーを作成します。返されるオブジェクトは指定された名前空間にバインドされた <code>mapState</code>、<code>mapGetters</code>、<code>mapActions</code> そして <code>mapMutations</code> が含まれます。<a href="modules.html#binding-helpers-with-namespace">詳細はこちら</a></p>
</li>
</ul>
</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="hot-reload.html" class="navigation navigation-prev navigation-unique" aria-label="Previous page: ホットリローディング">
<i class="fa fa-angle-left"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"API リファレンス","level":"1.13","depth":1,"previous":{"title":"ホットリローディング","level":"1.12","depth":1,"path":"hot-reload.md","ref":"hot-reload.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":{"prism":{},"github":{"url":"https://github.com/vuejs/vuex/"},"livereload":{},"search":{},"theme-vuejs":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":false,"twitter":false,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"edit-link":{"label":"Edit This Page","base":"https://github.com/vuejs/vuex/tree/dev/docs"},"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":"ja","links":{"sharing":{"facebook":false,"twitter":false}},"gitbook":"2.x.x"},"file":{"path":"api.md","mtime":"2018-02-17T07:20:49.000Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2018-03-02T20:43:43.208Z"},"basePath":".","book":{"language":"ja"}});
});
</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-livereload/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>