diff --git a/src/guide/essentials/computed.md b/src/guide/essentials/computed.md index be7a0c11c..d35fe6767 100644 --- a/src/guide/essentials/computed.md +++ b/src/guide/essentials/computed.md @@ -259,6 +259,115 @@ const fullName = computed({ +## 前回の値を取得する {#previous} + +- 3.4 以上でのみサポートされています + + +必要であれば、ゲッターの第 1 引数にアクセスすることで、算出プロパティが前回返した値を取得できます: + +
+ +```js +export default { + data() { + return { + count: 2 + } + }, + computed: { + // この computed は、count が 3 以下の場合にはその値を返します。 + // count が >= 4 の場合は、count が 3 以下になるまで、 + // 条件を満たした最後の値が代わりに返されます + alwaysSmall(previous) { + if (this.count <= 3) { + return this.count; + } + + return previous; + } + } +} +``` +
+ +
+ +```vue + +``` +
+ +書き込み可能な computed を使用している場合は: + +
+ +```js +export default { + data() { + return { + count: 2 + } + }, + computed: { + alwaysSmall: { + get(previous) { + if (this.count <= 3) { + return this.count; + } + + return previous; + }, + set(newValue) { + this.count = newValue * 2; + } + } + } +} +``` + +
+
+ +```vue + +``` + +
+ + ## ベストプラクティス {#best-practices} ### getter 関数は副作用のないものでなければならない {#getters-should-be-side-effect-free}