【GUI】Fletスレ【Python/Flutter】at TECH
【GUI】Fletスレ【Python/Flutter】 - 暇つぶし2ch1:デフォルトの名無しさん
25/01/25 11:24:10.96 im0hq6D4.net
Pythonだけで比較的省労力でGUIが作れて趣味プログラマレベルでもとっつきやすいFletについて語りませんか。

公式 URLリンク(flet.dev)

2:デフォルトの名無しさん
25/01/25 11:33:52.66 im0hq6D4.net
サンデープログラマレベルでもGUIに手を出せるのでありがたいけれど、いじっていてよく分からないところもあるので、質問できるスレとかがあるといいかなと思って立ててみた。

AutoComplete便利だけど、独立のコントロールになっているのはヘンじゃないかなぁ。TextFieldとかDropdownとかに統合されているべき機能のような気がする。

3:デフォルトの名無しさん
25/01/25 12:48:02.46 ax1LVfhV.net
おちんぽ戦士です

4:デフォルトの名無しさん
25/01/28 23:36:54.27 JiUtuXSy.net
最近はこれつかってるなぁ
なんか2.6から自分でdart弄って拡張つくれるのかね
ドラックドロップないのが欠点だ

5:デフォルトの名無しさん
25/01/28 23:37:36.33 JiUtuXSy.net
↑0.26.0やわ

6:デフォルトの名無しさん
25/01/29 12:28:23.11 cY4GKwgV.net
更新・再描画はPage.updateを明示的に呼ぶスタイルになっていて、それはそういう命令的なやり方をするという設計方針なんだろうから別にいいんだけど、肝心のupdateが変にスマートぶろうとして、変化があったと認識したコントロールしか更新・再描画してくれないんだよね。しかもその認識基準が結構ザルで、内容が変更されているのにupdateがそれを認識してくれないパターンが結構ある。flet.Control.build_update_commandsがたぶん更新・再描画するコントロールを選別するロジックなのかなと思うんだけど、読んでもよくわからなかった。

変にスマートぶろうとせず、コントロールを強制的に更新・再描画するメソッドを追加してくれないかなぁ。更新・再描画の手段がPage.updateしかない状況で、そのupdateがポンコツなのは辛すぎる。

7:デフォルトの名無しさん
25/01/29 12:31:54.27 cY4GKwgV.net
使いやすいし、今後の発展にも期待しているんだけど、画面更新・再描画とか、画面遷移とか、そういう基本的なところの穴がまだ結構残っている印象かや。今後の改善に期待。

8:デフォルトの名無しさん
25/01/29 18:09:35.24 cY4GKwgV.net
コントロールのハッシュ値が変化していればそのコントロールをupdate対象にするという処理にどうもなっているっぽくて、そうだとすれば、更新・再描画を要するような内容の変更があればハッシュ値も変わるようになっていないといけないはずなんだけど、必ずしもそうなっていないんじゃないかと思う。

9:デフォルトの名無しさん
25/01/29 20:18:09.89 CZA1SJMZ.net
updateはFlutterのsetStateの関係で呼ぶスタイルになっているのかなと思っている

10:デフォルトの名無しさん
25/01/31 10:01:19.40 MwhWyD1S.net
flet.Refでコントロールツリーの途中への参照が持てるのね。便利

11:デフォルトの名無しさん
25/02/01 08:54:09.28 RZ7MAS+G.net
refは使ってないな
current付けるのが好きで無い

12:デフォルトの名無しさん
25/02/01 10:25:44.91 VlXxrmDc.net
Refは、コントロールツリー全体の構造を保ったままその途中ノードに名前を付けるための機能と理解している。
なので、ある程度大きなコントロールツリーでないとありがたみが出てこないのは確かだよね。

13:デフォルトの名無しさん
25/02/07 21:26:51.95 aa7zWOX/.net
go版はいつ?

14:デフォルトの名無しさん
25/02/14 19:21:30.94 5ZxZeKkO.net
DropdownのOptionのcontentプロパティに文字列以外のコントロールも入れられると知って、flet.Rowを入れたんだけど、valueプロパティ(Optionのkeyプロパティ)は(自分の誤解でなければ)文字列化されちゃうのね。keyプロパティにtupleとかsqlite3.Rowを代入しても文字列化されるという仕様はどうなんだろう。任意のコントロールを格納できるようにした意味がないような気もするが……。

15:デフォルトの名無しさん
25/02/14 20:33:40.13 g5/dL1pg.net
全てはControlEventのdataがstr型に引っ張られているきがしている

16:デフォルトの名無しさん
25/02/18 06:28:21.09 0A5hl3HK.net
これイベントハンドラが
スレッドプールから呼ばれてマルチスレッドになってんだよな

17:デフォルトの名無しさん
25/03/21 14:26:54.95 Vdi6rcDR.net
0.27が出ているみたい。Dropdownコントロールが置き換えで微妙に仕様が変わっているみたいね。
入力文字列に基づく絞り込み表示がされるようになったのは嬉しいけれど、どうせならsuggestionプロパティを追加する等してAutoComplete相当の機能も取り込んでくれないかな。
あと、DropdownOptionにcontent属性を指定していてる場合、選択時にドロップダウンボックス内に表示されるのが(content属性ではなく)key属性の内容になっている(0.26ではcontent属性の内容だった)。これが意図した仕様変更なら改悪なのでは。

18:デフォルトの名無しさん
25/03/25 19:20:32.59 z+9Q790S.net
Reactでいいや

19:デフォルトの名無しさん
25/03/26 10:01:22.62 IczPUqJi.net
他のコントロールの手前にコントロール表示を重ねること(オーバーレイ表示)ができるのって、Page.overlayに入れられるコントロール(AlertDialog等)か、そうでなければStackの中だけか。
普通のColumnとかがオーバーレイ表示できるオプションがあれば便利なんだけどなぁ。

20:デフォルトの名無しさん
25/03/29 15:56:48.60 EL1+Ga+h.net
expand: True と width をともに指定したときの挙動って、親コントロールがRow やColumnのときとそれ以外のときとでひょっとして異なる?(RowやColumnのときはexpand: Trueが優先されるのに対し、それ以外のときはwidth指定が優先される?)
本来的には親コントロールがRowやColumn以外のときにもexpandを指定できるのがおかしいのかもしれないけれど、そこを許容するのであれば、他の部分の仕様も合わせておいて欲しかった。

21:デフォルトの名無しさん
25/03/29 19:06:31.44 tGLPvbVs.net
Page.on_keyboard_eventは、キー押しっぱなしのリピート入力には対応していないか。

22:デフォルトの名無しさん
25/04/02 13:41:28.03 ls9ya9jn.net
TextFieldにフォーカスを当てたときにTextField内に文字列があったらそれを選択状態にするというのをやりたいんだけど、方法がわからない。わりとありがちなニーズだと思うんだけど、
そもそも、TextField内の文字列を選択状態にするというメソッドがないような……。
仮に、今は方法がないのだとしても、バージョンアップなどでそのうち対応しそうではあるけれど、現状だとまだできないのかな?

23:デフォルトの名無しさん
25/04/17 09:31:51.54 jdK9MviC.net
Viewを新規作成したときのアニメーションはあんまり要らないかな。設定で切り替えられるようになっていればいいのにとちょっと思う。

24:デフォルトの名無しさん
25/04/17 18:59:44.56 1klF/n3v.net
遷移変えたいならPageTransitionTheme

25:デフォルトの名無しさん
25/04/18 19:21:20.55 ZUjnUsfX.net
おお、そんなところで設定できたのね。Themeは見てなかったよ。

26:デフォルトの名無しさん
25/04/18 19:40:26.00 ZUjnUsfX.net
おお、そんなところで設定できたのね。Themeは見てなかったよ。

27:デフォルトの名無しさん
25/04/23 05:54:00.38 curLR6rF.net
AlertDialogに「OK」「Cancel」のテキストボタンを置いて、それぞれを押したときの処理を書くという場合、テキストボタンのon_clickにlambdaで書ける内容なら苦労しないんだけど、文が必要なときはどうするのがいいかな?
今は、関数を作ってテキストボタンのon_clickに指定しているんだけど、わざわざ名前付きの関数を作らなきゃいけないのがちょっと不満なんだよね。よくあるGUIライブラリみたいに戻り値で分岐させる方が楽だったなという感が拭えなくて。

28:デフォルトの名無しさん
25/05/10 13:31:23.16 J+Qfv1kZ.net
バージョン上げるとちょこちょこエラーになる…

29:デフォルトの名無しさん
25/07/30 13:42:31.22 9cD2Qfoh.net
1か月くらい前に1.0アルファ版が出ていたのね。ちょっと触る時間がないんだけど、結構再設計されている部分があるみたい。

30:デフォルトの名無しさん
25/07/30 14:00:29.27 Meqfu9qd.net
リアクティブプログラミングスタイルの記述が気になっているけど触っていない

31:デフォルトの名無しさん
25/08/03 21:32:11.70 2B5I/jfB.net
レイアウト系コントロールのcontrolsプロパティに、たとえばRowとCheckboxとLiptViewを突っ込むと、VSCodeのPylanceから「型"list[Row | Checkbox | ListView]"の引数を、関数"__init__"の型"list[Control]" のパラメーター"controls"に割り当てることはできません」って警告が出て鬱陶しいんだけど正攻法で抑止する方法って何かないかな。
Row, Checkbox, ListViewがControlの下位クラスってことを型チェッカーが把握してないってことだと思うんだけど。

32:デフォルトの名無しさん
25/08/04 14:31:12.98 IfdApRBS.net
RowとCheckboxとListViewをすべてControlにcastすれば警告は抑止できるけど、さすがにそんなこといちいちやっていられないし。
たぶん何か簡単な方法があると思うんだけどなぁ。

33:デフォルトの名無しさん
25/08/04 17:37:16.08 QEghF0O/.net
昔それなったことあるけど
今単純にColumnのcontrolsにRow, Checkbox, ListViewを突っ込んだだけだとでないな

34:31-32
25/08/04 18:49:51.62 IfdApRBS.net
原因は一応分かったかも。
中のコントロールにflet.Refで参照を張っているんだけどどうやら角括弧による型付きRefで参照を張ると警告が出るっぽい。単にft.Ref() にしたら警告が出なくなった。ただ、動作に問題がないかは要確認かな。何でそうなるのかもまだきちんとは分かってないし。

35:デフォルトの名無しさん
25/08/05 16:12:27.14 d07nDUZU.net
ジェネリクスの共変とか反変とかの概念が関係あるみたいね、あまりよく分かってないが。基底型がBで派生型がDのとき、list[D]がlist[B]の派生型になるとは限らないとか何とか。本当は型理論とかまじめに勉強すべきなんだろうけど、それはちょっとしんどいなぁ……。

36:デフォルトの名無しさん
25/08/14 22:21:20.82 ZKu9lsh4.net
@data_viewにちょっと触ってみた。before_updateに色々突っ込まずに済むようになったみたいでそれ自体はいい感じ。
ただ、親コントロール.controls[インデックス] = 新コントロールという感じで更新するとき、インデックス(親コントロールの何番目の子要素か)をハードコーティングしたくないんだけど、あまりうまく行く方法が見つからなくて困り中。Refでやるのが普通かなと思ったんだけど、@data_viewはメモ化しているみたいで、キャッシュからコントロールが返されるときにうまくいかないみたい。
あまり触る時間もないので当面はハードコーティングで済ませて、ドキュメントが公開された後にあらためて検討することになりそう。

37:デフォルトの名無しさん
25/08/18 15:46:09.26 1pvPWxPY.net
TextFieldを含むカスタムコントロールXと、その状態を保持するXStateクラスとを作ってControlBuilderでリアクティブに処理しようとする場合、とりあえずxにxstateへの参照を持たせて、TextFieldのon_changeの中で x.state.value = e.control.value みたいな感じにしているんだけど、こんな設計でいいのかな。これだと入力のたびにTextField(あるいはそれを含むカスタムコントロール全体?)が再生成されることになるんだけどリアクティブUIってそんなもの?
あまり、他のフレームワークとか触ったことがないので勝手がよくわからない。

38:デフォルトの名無しさん
25/08/18 18:58:19.77 HwAf1a14.net
ControlBuilderで生成されるコントロールが持つメソッド(具体的にはfocus)の呼び出しって、どう書けばいいんだろ?
controlsリストの最初の要素としてfocusを持つコントロールを生成して返すControlBuilderを置いた上で、他の場所でself.controls[0].focus って書いたら、「ControlBuilderはfocusという名前のメソッドを持ってない」と怒られたんだが。

39:デフォルトの名無しさん
25/08/21 20:32:27.60 NaAwv2o/.net
dev5066いれてみたけどControlBuilderどこだよ…

40:デフォルトの名無しさん
25/08/21 20:33:03.13 NaAwv2o/.net
dev5509だった

41:デフォルトの名無しさん
25/08/21 20:48:06.07 NaAwv2o/.net
名前変わったのかよ

42:デフォルトの名無しさん
25/08/21 21:11:43.38 NaAwv2o/.net
>>38
ft.Refで参照したよ
で、TextField.focus()だと非同期になってるからawaitいる

43:デフォルトの名無しさん
25/08/22 09:05:36.13 5NhjtIih.net
ControlBuilderで返されるオブジェクトのrefプロパティに適宜のref名を設定して参照を張るという方法は、ControlBuilderに渡す状態オブジェクト変数が p → q → p …… というように同じ引数になる場合、同じ引数による2回目以降の呼び出しでは効かなくなるという問題がない? だから、ControlBuilderを使う場合にはrefは事実上、使えなくなったものだと思っていたんだが。

44:デフォルトの名無しさん
25/08/29 16:32:10.87 FvSDmdzS.net
ControlBuilderをちょっと試してみたが、やっぱり少し重くなることがあるね。自分の書き方が悪いだけなのかもしれないけれど、そうでないとしたら使い所・使い方を選ぶ感じの機能なのかも。全面的にリアクティブUIにしたかったんだけど、これだとちょっと辛いかな。

45:デフォルトの名無しさん
25/08/30 10:06:50.47 U/OkkUQy.net
>>38
妥当な方法か否かは分からないが、ControlBuilderの content属性からControlBuilderが生成したその戻り値オブジェクトにアクセスできるみたいね。

46:デフォルトの名無しさん
25/08/30 12:26:49.50 tdfvlCm8.net
直接value触ると怒られるな
もうstateから触れってことか

47:デフォルトの名無しさん
25/08/31 22:30:51.48 OfdewdYG.net
>>45
ControlBuilderのcontent属性にセットされるのは一回updateされた後っぽい。それまではNone

48:デフォルトの名無しさん
25/09/01 15:53:48.33 5rr2TLhQ.net
ControlBuilderの仕様って、こんな感じ?
・ 画面にはControlBuilderの第2引数builderの呼び出しによって生成されたコントロールが表示されるが、コントロールツリーにはControlBuilderオブジェクトそのものが格納される。
・ ControlBuilderの第2引数builderの呼び出しによって生成されたコントロールは、いったん画面に表示された後は(?)、ControlBuilderオブジェクトの属性contentに保持されている(そうなる前のcontent属性の値はNone)。生成されたコントロールの属性にアクセスしたいときは、このcontent属性経由でアクセスすることが考えられる。
・ ControlBuilderの第1引数state(その実引数式)は、ControlBuilderの呼び出し時にただ1度だけ評価され、ControlBuilderは以下その値を参照し続ける。したがって、コントロールの仕様がstate.attrに依存する場合は、第1引数としてはstateを渡し、第2引数builderの式の中でstate.attrを参照する形にするのが基本。第1引数にstate.attrを直接渡す形にしてしまうと(それ自身が値の変更を行うメソッドを持っていたり、そもそも値の変更を行う必要がないような場合はともかく)どこかでstate.attr = new_val としてもControlBuilder から状態変更として認識されない。
・ 描画更新・再描画は、第1引数stateの内容変更(おそらくそのハッシュ値の変更?)があったときに、第2引数builderに第1引数stateを引数として与えて呼び出したその戻り値のコントロールを新しいコントロールとする形で行われる。builderは描画更新・再描画のたびに呼び出されるが、ControlBuilderやその第1引数stateは描画更新・再描画のたびに評価されるわけではない。
・ 第1引数stateの内容変更は描画更新・再描画のトリガーになるので、stateオブジェクトはできるだけコンパクトにするのが良い。
・ ControlBuilderで生成されるコントロールにref属性を設定するのは、第2引数builderに渡される状態引数(=第1引数stateの値)が p → q → p …… というように同じ値になる場合(CheckBoxやRadioGroupでよくある)、同じ値による2回目以降の呼び出しでは効かなくなるという問題があるっぽい(キャッシュが働くため、refを設定するコードがスキップされてしまうのだと思われる)。事実上、Refが使えないのだとすると非常に不便なので何か回避法がありそうではあるが……。

49:デフォルトの名無しさん
25/09/07 12:43:28.89 TqDkjIbM.net
あれ、現時点でインストールするとControlBuilderが見つからないってなるな。>>39-41と同じ状態?

50:デフォルトの名無しさん
25/09/07 14:09:29.85 TqDkjIbM.net
StateViewという名前になったのか。こういう変更ってどこかに書いてあったのかな? アルファ版だから、どこにも書いてなかったとしても文句は言えないが。

51:デフォルトの名無しさん
25/09/07 23:17:20.34 TC5o/1J8.net
>>48
4点目だけど、描画更新・再描画が行われるのは、第1引数stateの内容変更があったときではなく、第1引数stateの子孫属性に対する代入があったときというのが正確みたいね(元と同じ値を代入したときも描画更新・再描画は行われるみたい)。noteで解説記事を書いている人によると、__set_attr__をフックしているらしい。

52:デフォルトの名無しさん
25/09/07 23:55:55.13 wN29kMQ7.net
せっかくupdateいらなくなるのに
asyncio.sleepがいるってどうなん……

53:デフォルトの名無しさん
25/09/08 00:22:50.28 i1Wv6LLA.net
まぁ、ダイアログ等限定の話なら我慢できるかな。

54:デフォルトの名無しさん
25/09/08 17:54:12.61 PGku9TnQ.net
page.run_taskでstate変更しても反映しないな

55:デフォルトの名無しさん
25/09/09 22:58:43.69 zANAfy0I.net
タブ周りも結構変わっているのね。Tabsのcontentに(Columnでまとめた)TabBarとTabBarViewを入れるってことでいいの……か?

56:デフォルトの名無しさん
25/09/10 21:27:09.31 Rtl+OmsU.net
>>48
最後の点だけど、もうRefを使っても問題ないみたい。修正された?

生成後に部分的な状態変更を必要とするようなカスタムコントロールは、StateViewでは使えないことになるのね。基本的にカスタムコントロールで凝ったことをするのは想定してないってことなのか。

57:デフォルトの名無しさん
25/09/11 10:40:51.92 ZLHIwsaj.net
アルファ版のうちにということだろうけど、ここぞとばかりに色々弄っているな。たしかにこの先破壊的変更は入れづらくなっていくんだろうから、ここでいろいろやっておくのは良いことなんだろうね。

58:デフォルトの名無しさん
25/09/18 08:09:43.17 6zvJPGqA.net
明示的にupdateを書くことが(基本的には)なくなるということは、is_updateでTrueを返すようにするということは(基本的には)もうないってことでいいのかな。

ft.context.pageでどこからでもPageにアクセスできるのは地味にありがたい。カスタムコントロールの__init__の中でself.page.hogeとやって「Noneにhogeという属性はありません」と怒られるミスはよくやってしまっていたので。

59:デフォルトの名無しさん
25/09/18 13:05:21.93 DPWCUt9/.net
ごめん、is_updateじゃない、is_isolated だ。

60:デフォルトの名無しさん
25/09/18 19:18:38.40 t2Gbg0/Z.net
1.0当分かかりそうか

61:デフォルトの名無しさん
25/09/20 09:50:21.54 kxS+pQnh.net
いまアルファ版(0.7)で、これからベータ版(0.8)→RC版(0.9)を経て1.0 だもんね。noteの解説記事を書いている人によれば、年内くらいじゃないかという見立てのようだけど、どうなんだろうね。

62:デフォルトの名無しさん
25/10/06 15:14:18.20 QPH3iO32.net
focus_stopみたいな名前のプロパティでも作って、コントロールへの入力完了後に次の(フォーカスを受け取る)コントロールに自動的にフォーカスが移るようにしてくれないかなぁ……。デスクトップアリでこれがないのは流石にちょっと使いにくいので自分で書いてみたけど結構面倒くさいし、これくらいはライブラリ側に期待しても罰は当たらないと思うんだよね。
autofocusがそういうプロパティかと思っていたんだけど、アレ全然役に立たないのな。何のためにあるんだレベル。

63:デフォルトの名無しさん
25/10/07 18:17:13.86 nb9VcTS1.net
コンテキストメニュー(右クリックメニュー)の機能も欲しいかな。ウェブの解説記事を参考にしてGestureDetector と Stack でそれっぽいものを作るところまではできたんだけど、メニュー以外のところをクリックしたときにメニューの表示を消すというのを簡単にする方法がわからなくて断念した。
何かしら方法はあるんだろうけど、コンテキストメニューくらいは簡単にかけるようになっていると嬉しいかな。

64:デフォルトの名無しさん
25/10/08 11:38:45.62 5PMf8mIp.net
>>63
大きさ0のTextField をStackの奥側に置いておいて、そのon_blurイベントでStack を削除するようにすればそれっぽい感じにできるっぽい。
でもやっぱりもう少しちゃんとした方法が欲しいところだなー。

65:デフォルトの名無しさん
25/10/09 19:27:41.53 V7lTVJBy.net
StateViewも何か別のコンセプトに置き換わるみたい。アルファ版ということもあってか、思った以上に流動的なんだね。いじったり、勉強したりするのは1.0が出てからにした方がいいのかも。

66:デフォルトの名無しさん
25/10/16 12:22:09.70 S5H+CbkM.net
触るのやめたよ

67:デフォルトの名無しさん
25/10/16 13:59:41.30 A2DLovH4.net
まー、本格的に触るのはもう少し仕様が安定してからでもいいかな感はあるかなぁ。正直、StateView(ControlBuilder)はメインコンセプトっぽいからさすがに変更されることはないだろうと甘く見ていたわ。たしかに新しいcomponentベースの宣言型UIの方が柔軟性は高そうではあるけれども。

ちょっとだけ触ってみたところ、状態変更が連鎖するコードだと「Set changed size during iteration」という実行時エラーで怒られるんだけど(__pending_updatesというset内の各コントロールをupdateしている最中に__pending_updates自体に追加等があったということっぽい)、何か対処法あるのかな。

68:デフォルトの名無しさん
25/10/17 10:48:52.13 NJK8gXIe.net
状態①の変更に伴い呼び出されるコンポーネント①のコードの中に、別の状態②の変更(それにより別のコンポーネント②のコードが呼び出される)があると67後半のエラーになるっぽい。これを許すとコントロールツリーの一貫性に問題が生じる事態が生じうるということなのかもしれない。
状態①の変更に伴い呼び出されるコンポーネント①のコードの中から別の状態②の変更を発生させるコードを一旦取り除いて、コンポーネント①の完了後にその処理を行うようにしたらエラーが出なくなった(常にこのような対応が可能かは別問題だけど)。

componentベースの宣言型UIという方向性は、個人的にはそんなに悪くない感触かな。仕様が安定するまでは触るのは程々にとどめておくけど。

69:デフォルトの名無しさん
25/11/12 19:13:41.90 0pO79JLj.net
しばらく更新みてなかったけど
Reactみたいになるんか

70:デフォルトの名無しさん
25/12/04 13:14:05.78 vzedHpAU.net
クリスマス前にバージョン1のベータ版(0.8)が来るっぽい。

71:デフォルトの名無しさん
25/12/08 21:37:25.73 C+xg34rI.net
0.7触ってみたら作り方がよくわからんかった

72:デフォルトの名無しさん
25/12/09 19:09:38.49 SiIFZtuq.net
宣言型のView遷移の仕方がわかんない
page.viewsの中身がComponentになってたりするし
まだまださわるの早いか

73:デフォルトの名無しさん
25/12/10 01:04:52.61 5hPoC5Nl.net
page.viewsの中身ってviewコントロールだと思っていたけど変わった?
まぁ、画面遷移関係は従前から酷評されていたところどから(ぶっちょけ仕様ミスと言われてもしょうがないレベル)、どこかで大幅に手が入るんだろうなとは思っていたけど。

74:デフォルトの名無しさん
26/01/06 18:07:38.72 4d+CUWsF.net
0.8でてるけどまだαかβなんかこれ

75:デフォルトの名無しさん
26/01/06 19:20:56.53 DstfhSUU.net
0.8がβ版で、0.9がRC版という位置付けみたいよ。0.7になったときにちょっとだけ触ったけど、そこから、また色々変わっているのかなぁ。

76:デフォルトの名無しさん
26/01/06 23:22:44.81 4d+CUWsF.net
なるほどーβか
@observableにroute変数作っといて
route変更での再レンダリングでView切り替えるってことでいいのかこれ…

77:デフォルトの名無しさん
26/01/09 18:44:10.96 HR0fx0dh.net
React触ってないからuse_~良くしらないけど楽しくなってきた


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch