Skip to content

Commit 729803b

Browse files
authored
Guide > Scaling Up > State Management の翻訳を追従 (#306)
* fix: update links to point at the Vuex 4 documentation vuejs/docs@0e5b678#diff-e1a9e26e68d5a2cb4623864fbd565e0f3b01a6e17de1d884678f5130c64d52cd * docs: swap more examples to destructuring for accessing the global Vue vuejs/docs@e5b34b2#diff-e1a9e26e68d5a2cb4623864fbd565e0f3b01a6e17de1d884678f5130c64d52cd
1 parent 192dd90 commit 729803b

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/guide/state-management.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## 公式の Flux ライクな実装
44

5-
大規模なアプリケーションは、たくさんのコンポーネント上に複数の状態が散らばっていることや、それらのコンポーネント間の相互作用が原因となって、複雑になりがちです。この問題を解消するために、Vue は Elm に触発された状態管理ライブラリの [vuex](https://github.com/vuejs/vuex) を提供しています。これは [vue-devtools](https://github.com/vuejs/vue-devtools) とも連携し、特別なセットアップなしで[タイムトラベルデバッグ](https://raw.githubusercontent.com/vuejs/vue-devtools/master/media/demo.gif)を提供します。
5+
大規模なアプリケーションは、たくさんのコンポーネント上に複数の状態が散らばっていることや、それらのコンポーネント間の相互作用が原因となって、複雑になりがちです。この問題を解消するために、Vue は Elm に触発された状態管理ライブラリの [Vuex](https://next.vuex.vuejs.org/) を提供しています。これは [vue-devtools](https://github.com/vuejs/vue-devtools) とも連携し、特別なセットアップなしで[タイムトラベルデバッグ](https://raw.githubusercontent.com/vuejs/vue-devtools/master/media/demo.gif)を提供します。
66

77
### React 開発者向けの情報
88

@@ -13,17 +13,19 @@
1313
Vue アプリケーションの情報源となっているのがリアクティブな `data` オブジェクト、すなわち、`data` オブジェクトへのアクセスのみをプロキシするコンポーネントインスタンスであることは見過ごされがちです。それゆえに、複数のインスタンスで共有されるべき状態がある場合、オブジェクトをリアクティブにするために [reactive](/guide/reactivity-fundamentals.html#declaring-reactive-state) 関数を利用できます:
1414

1515
```js
16-
const sourceOfTruth = Vue.reactive({
16+
const { createApp, reactive } = Vue
17+
18+
const sourceOfTruth = reactive({
1719
message: 'Hello'
1820
})
1921

20-
const appA = Vue.createApp({
22+
const appA = createApp({
2123
data() {
2224
return sourceOfTruth
2325
}
2426
}).mount('#app-a')
2527

26-
const appB = Vue.createApp({
28+
const appB = createApp({
2729
data() {
2830
return sourceOfTruth
2931
}
@@ -39,7 +41,7 @@ const appB = Vue.createApp({
3941
このようにすることで `sourceOfTruth` が変化するたびに、`appA``appB` の両方がそれぞれの view を自動的に更新します。いま、唯一の情報源を持っていることにはなりますが、デバッグは悪夢になるでしょう。あらゆるデータが、アプリケーションのどこからでも、そしていつでも、トレースを残すことなく変更できてしまうのです。
4042

4143
```js
42-
const appB = Vue.createApp({
44+
const appB = createApp({
4345
data() {
4446
return sourceOfTruth
4547
},
@@ -55,7 +57,7 @@ const appB = Vue.createApp({
5557
const store = {
5658
debug: true,
5759

58-
state: Vue.reactive({
60+
state: reactive({
5961
message: 'Hello!'
6062
}),
6163

@@ -88,7 +90,7 @@ Store の状態を変化させる action がすべて store 自身の中にあ
8890
```
8991

9092
```js
91-
const appA = Vue.createApp({
93+
const appA = createApp({
9294
data() {
9395
return {
9496
privateState: {},
@@ -100,7 +102,7 @@ const appA = Vue.createApp({
100102
}
101103
}).mount('#app-a')
102104

103-
const appB = Vue.createApp({
105+
const appB = createApp({
104106
data() {
105107
return {
106108
privateState: {},
@@ -118,4 +120,4 @@ action によって、元の状態を保持するオブジェクトを置き換
118120

119121
store が保持する状態をコンポーネントが直接的に変更することを禁止し、代わりにコンポーネントが store に通知するイベントを送ることによってアクションを実行する、という規約を発展させていくに従って、最終的に [Flux](https://facebook.github.io/flux/) アーキテクチャに辿り着きました。この規約による利点としては、store に起こるすべての状態変化を記録することができたり、変更ログやスナップショット、履歴や時間の巻き戻しといった高度なデバッギングヘルパーを実装できることが挙げられます。
120122

121-
ここまで来ると一周まわって [Vuex](https://github.com/vuejs/vuex) に戻ってきました。ここまで読み進めてきたのなら、vuex を試してみるとよいでしょう!
123+
ここまで来ると一周まわって [Vuex](https://next.vuex.vuejs.org/) に戻ってきました。ここまで読み進めてきたのなら、vuex を試してみるとよいでしょう!

0 commit comments

Comments
 (0)