$mol
検索
⌘ K
ドキュメント
プレイグラウンド
比較
エコシステム
概要
JA
データ取得
Getting Started
はじめに
メンタルモデル
はじめかた
TypeScript から view.tree へ
プロジェクト構成
ツール
Essentials
インストール
ビュー
状態とリアクティビティ
ルーティング
レンダリング
テスト
デプロイ
トラブルシューティング
Data
データ取得
データスキーマ
Giper Baza
More
ショーケース
React、Vue、Svelte から
クックブック
Advanced
プラグイン
モジュールのメタデータ
オフライン
ゴーストビュー
About
よくある質問
チーム
リリース
API
$mol_button_major
$mol_button_minor
$mol_string
$mol_number
$mol_text
$mol_paragraph
$mol_list
$mol_row
$mol_link
$mol_check
$mol_switch
$mol_select
$mol_scroll
$mol_page
$mol_pick
データ取得
$mol でリモートデータを読み込むのは特別な API ではありません——非同期な値は、あたかも応答がすでにそこにあるかのように書かれた、ただのリアクティブなプロパティです。ビューはそれを待ち、読み込み状態を表示し、データが届いたときに再描画します。
非同期なプロパティ
@ $mol_mem
の中でネットワークを呼び、パースされた結果を返します。コードに promise も
await
もコールバックもありません。
1
namespace
$
.
$$
{
2
export class
$my_users
extends
$
.
$my_users
{
3
@ $mol_mem
4
users
(
)
{
5
return
this
.
$
.
$mol_fetch
.json
(
'https://api.example.com/users'
)
as
{
6
id:
number
7
name:
string
8
}
[
]
9
}
10
}
11
}
$mol_fetch
は応答が届くまでファイバーを中断し、そのあと計算がやり直されて
users
(
)
が配列を返します。保留の間、
users
(
)
を読むどのビューも組み込みの読み込み状態を自動的に表示します——
isLoading
フラグは書きません。
@ $mol_mem
から自分で promise を返してはいけません。値として格納された promise はセルを永久に読み込み状態に留めます。
トラブルシューティング
を参照してください。
this
.
$
はコンポーネントのコンテキストです。サービスはすべてそこを通ります。ネットワークなら
$mol_fetch
、URL なら
$mol_state_arg
、時間なら
$mol_after_timeout
。テストではコンテキストが差し替えられるので、コンポーネントを一行も変えずに、同じ
users
(
)
がネットワークではなくモックへリクエストを送ります。そのモックは
テスト
で示します。
結果の描画
解決したデータをそのままリストに束ねます。
1
@ $mol_mem
2
user_names
(
)
{
3
return
this
.users
(
)
.map
(
user
=
>
user
.
name
)
4
}
応答が届くと
users
(
)
が更新され、
user_names
(
)
が再計算され、リストが描画されます。コールバックも
useEffect
もありません。
再読み込み
それはただのリアクティブなセルなので、無効化することで再取得します。増やせるトークンに依存します。
1
@ $mol_mem
2
reload_token
(
next
?
:
number
)
{
3
return
next
?
?
0
4
}
5
6
@ $mol_mem
7
users
(
)
{
8
this
.reload_token
(
)
// subscribe
9
return
this
.
$
.
$mol_fetch
.json
(
'https://api.example.com/users'
)
as
unknown
[
]
10
}
11
12
@ $mol_action
13
reload
(
)
{
14
this
.reload_token
(
this
.reload_token
(
)
+
1
)
15
}
GitHub でこのページを編集
役に立ちましたか?
はい
いいえ
前へ
トラブルシューティング
次へ
データスキーマ
このページの内容
非同期なプロパティ
結果の描画
再読み込み
エラー
次へ
Type to search the documentation.