@wcstack/state 4.0.3 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +6 -4
- package/README.md +6 -4
- package/dist/auto.min.js +1 -1
- package/dist/auto.min.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/dist/split/auto.js +1 -1
- package/dist/split/chunks/chunk-4HLDITUB.js +2 -0
- package/dist/split/chunks/chunk-4HLDITUB.js.map +1 -0
- package/dist/split/chunks/chunk-56ZGITUJ.js +2 -0
- package/dist/split/chunks/{chunk-TD4XQCEX.js.map → chunk-56ZGITUJ.js.map} +1 -1
- package/dist/split/chunks/{chunk-TUQ3OPZQ.js → chunk-7QVEF5E3.js} +2 -2
- package/dist/split/chunks/{chunk-4NJBYXIT.js → chunk-7ZU3CLEG.js} +1 -1
- package/dist/split/chunks/chunk-7ZU3CLEG.js.map +1 -0
- package/dist/split/chunks/{chunk-PHAN6L23.js → chunk-BWGPKDHS.js} +2 -2
- package/dist/split/chunks/{chunk-M656SMUU.js → chunk-GGSHXG7N.js} +2 -2
- package/dist/split/chunks/chunk-JAEYZSVS.js +2 -0
- package/dist/split/chunks/{chunk-V6VVL4F3.js.map → chunk-JAEYZSVS.js.map} +1 -1
- package/dist/split/chunks/{chunk-6MACFEK7.js → chunk-R5OJ52SF.js} +2 -2
- package/dist/split/chunks/chunk-UFIDBJBP.js +2 -0
- package/dist/split/chunks/{chunk-DFXQ7MFW.js → chunk-V3HFN3MW.js} +2 -2
- package/dist/split/chunks/{chunk-ZN52NEIB.js → chunk-XEGL4FW5.js} +2 -2
- package/dist/split/core.js +1 -1
- package/dist/split/features/devtools.js +1 -1
- package/dist/split/features/diagnostics.js +1 -1
- package/dist/split/features/diagnostics.js.map +1 -1
- package/dist/split/features/formats.js +1 -1
- package/dist/split/features/list-keys.js +1 -1
- package/dist/split/features/native-commands.js +1 -1
- package/dist/split/features/recursion.js +1 -1
- package/dist/split/features/scopes.js +1 -1
- package/dist/split/features/ssr.js +1 -1
- package/dist/split/features/temporal.js +1 -1
- package/dist/split/features/temporal.js.map +1 -1
- package/package.json +1 -1
- package/dist/split/chunks/chunk-4NJBYXIT.js.map +0 -1
- package/dist/split/chunks/chunk-BMGEWHCR.js +0 -2
- package/dist/split/chunks/chunk-EM3Y3SJS.js +0 -2
- package/dist/split/chunks/chunk-EM3Y3SJS.js.map +0 -1
- package/dist/split/chunks/chunk-TD4XQCEX.js +0 -2
- package/dist/split/chunks/chunk-V6VVL4F3.js +0 -2
- /package/dist/split/chunks/{chunk-TUQ3OPZQ.js.map → chunk-7QVEF5E3.js.map} +0 -0
- /package/dist/split/chunks/{chunk-PHAN6L23.js.map → chunk-BWGPKDHS.js.map} +0 -0
- /package/dist/split/chunks/{chunk-M656SMUU.js.map → chunk-GGSHXG7N.js.map} +0 -0
- /package/dist/split/chunks/{chunk-6MACFEK7.js.map → chunk-R5OJ52SF.js.map} +0 -0
- /package/dist/split/chunks/{chunk-BMGEWHCR.js.map → chunk-UFIDBJBP.js.map} +0 -0
- /package/dist/split/chunks/{chunk-DFXQ7MFW.js.map → chunk-V3HFN3MW.js.map} +0 -0
- /package/dist/split/chunks/{chunk-ZN52NEIB.js.map → chunk-XEGL4FW5.js.map} +0 -0
package/README.ja.md
CHANGED
|
@@ -191,9 +191,9 @@
|
|
|
191
191
|
<script type="importmap">
|
|
192
192
|
{
|
|
193
193
|
"imports": {
|
|
194
|
-
"@wcstack/state/core": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
195
|
-
"@wcstack/state/features/temporal": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
196
|
-
"@wcstack/state/features/scopes": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
194
|
+
"@wcstack/state/core": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/core.js",
|
|
195
|
+
"@wcstack/state/features/temporal": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/features/temporal.js",
|
|
196
|
+
"@wcstack/state/features/scopes": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/features/scopes.js"
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
199
|
</script>
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
ページが名指したアドオンを、同じビルドから読み込みます。
|
|
254
254
|
|
|
255
255
|
```html
|
|
256
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
256
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/auto.js"></script>
|
|
257
257
|
<wcs-state features="scopes diagnostics">
|
|
258
258
|
<script type="module">
|
|
259
259
|
export default {
|
|
@@ -2579,6 +2579,8 @@ $renderedCallback(paths) {
|
|
|
2579
2579
|
|
|
2580
2580
|
**getter を watch すると eager になります。** computed は本来 lazy で、依存は評価時にしか記録されません —— つまり描画していない getter は本来一度も発火しません。`$watch` に宣言すると接続時に 1 回 —— ワイルドカード getter(`items.*.tax`)なら全行について —— 評価され、以後は依存に触れたバッチの終端で毎回評価されます。`prev` は前回の評価値で、変更が届けば、値が変わったかどうかに関わらず watch は発火します(上の 2 つの場合を除く)。重い computed を watch すればその評価コストが毎バッチ乗り、getter 内の例外は眠ったままにならず watch 経由で表面化します。接続時の評価が throw した場合は報告され(`$watch initial evaluation of "…" threw.`)、その watch の最初の `prev` は `undefined` になり、ほかはすべて続行します。
|
|
2581
2581
|
|
|
2582
|
+
**要素が既に持っていた値でも発火します。** watch は `$connectedCallback` の後に始まり、それより前の書き込みでは発火しません。しかし watch するパスに束ねた要素は、バインディングがつながった時点で値を既に持っていること(開いている `<wcs-sse>` の `connected`、router の最初の `typedParams`)も、少し後に報告することもあり、どちらになるかはページの読み込みの速さで変わります。そこで、watch が始まる前に要素が watch するパスへ書いた値は、始まったときにそのパスがまだその値なら、`prev` をシードにして 1 回発火します。それより前のコードからの書き込み —— `$connectedCallback` —— は今までどおり発火せず、シードと同じ値はそもそも書き込まれません。
|
|
2583
|
+
|
|
2582
2584
|
発火順序は 3 層に分かれ、利用者が意思を持てるのは真ん中の層だけです。
|
|
2583
2585
|
|
|
2584
2586
|
| 層 | 順序 | 制御 |
|
package/README.md
CHANGED
|
@@ -192,9 +192,9 @@ leaves features out, it can compose them instead:
|
|
|
192
192
|
<script type="importmap">
|
|
193
193
|
{
|
|
194
194
|
"imports": {
|
|
195
|
-
"@wcstack/state/core": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
196
|
-
"@wcstack/state/features/temporal": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
197
|
-
"@wcstack/state/features/scopes": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
195
|
+
"@wcstack/state/core": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/core.js",
|
|
196
|
+
"@wcstack/state/features/temporal": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/features/temporal.js",
|
|
197
|
+
"@wcstack/state/features/scopes": "https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/features/scopes.js"
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
200
|
</script>
|
|
@@ -254,7 +254,7 @@ receptacle the owning add-on fills on install).
|
|
|
254
254
|
core, and the add-ons the page names from the same build.
|
|
255
255
|
|
|
256
256
|
```html
|
|
257
|
-
<script type="module" src="https://cdn.jsdelivr.net/npm/@wcstack/state@4.0
|
|
257
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/@wcstack/state@4.1.0/dist/split/auto.js"></script>
|
|
258
258
|
<wcs-state features="scopes diagnostics">
|
|
259
259
|
<script type="module">
|
|
260
260
|
export default {
|
|
@@ -2589,6 +2589,8 @@ The handler runs with `this` bound to a **writable** state proxy, so it can writ
|
|
|
2589
2589
|
|
|
2590
2590
|
**Watching a getter makes it eager.** A computed getter is normally lazy, and its dependencies are only recorded when it is evaluated — so an unrendered getter would never fire at all. Declaring one in `$watch` evaluates it once at connect — for every row, when it is a wildcard getter (`items.*.tax`) — and again at the end of every batch that touches its dependencies. Its `prev` is the previous evaluation, and a change that reaches it fires the watch whether or not the value changed (but for the two cases above). Watch a heavy computed and you pay that evaluation on every batch; exceptions inside it surface through the watch instead of staying dormant. An evaluation at connect that throws is reported (`$watch initial evaluation of "…" threw.`), that watch's first `prev` is `undefined`, and everything else goes on.
|
|
2591
2591
|
|
|
2592
|
+
**A value an element already had fires too.** Watches start after `$connectedCallback`; a write before then does not fire them. But an element bound to a watched path may already hold its value when the binding attaches — an open `<wcs-sse>`'s `connected`, the router's first `typedParams` — or may report it a moment later, depending on how fast the page loaded. So an element's write to a watched path before the watches start fires the watch once when they start, with `prev` the seed, if the path still holds that value. A write from code before then — `$connectedCallback` — still fires nothing, and a value equal to the seed was never written.
|
|
2593
|
+
|
|
2592
2594
|
Firing order is defined in three layers, and only the middle one is yours to steer:
|
|
2593
2595
|
|
|
2594
2596
|
| Layer | Order | Your control |
|