<p>dva 2.0</p>

䜜成日 2017幎03月27日  Â·  43コメント  Â·  ゜ヌス: dvajs/dva

プロゞェクトは空です。以前に受け取った情報ず私自身のアむデアを組み合わせるず、 dva @ 2.0の考慮事項は次のようになりたす。議論ぞようこそ。

  • dva 1.0、BreakChangeずの互換性を簡単なルヌルで詊しお、CodeModワンクリックアップグレヌドを提䟛しおください
  • 独立したデヌタフロヌ゜リュヌション、Reactたたは他のビュヌラむブラリを匷制せず、ルヌタヌラむブラリを匷制したせんが、既存のバむンディングず簡単に組み合わせるこずができたす、530
  • Reselectのメモ化など、組み蟌みの合理的なパフォヌマンス最適化゜リュヌションでは、ナヌザヌが远加のコヌドを蚘述する必芁はありたせん。
  • レデュヌサヌずセレクタヌをより緊密に統合し、それらを䞀緒に蚘述しやすくしたす。䞀緒に結ばれ、曞きやすく、より良い組み合わせ
  • ゚ラヌ通知をよりわかりやすくする、436416
  • コヌド分​​割をより盎感的に凊理する
  • ビュヌで゚フェクトコヌルバックをより適切に凊理する、175
  • より゚レガントなHMRスキヌム、469
  • 次のようなモデルの拡匵ず再利甚を怜蚎しおください。dva-model-extend
  • コヌドスタむルプラグむンの実装の曞き換え、モゞュヌルの分割など。
discussion

最も参考になるコメント

@nihgwuルヌタヌを抜出する目的は䜕ですか

党おのコメント43件

tsのネむティブサポヌトはどうですか

モデルを解陀するずきに、未䜿甚の状態デヌタを砎棄するためにレデュヌサヌを枡すこずをサポヌトするこずを怜蚎したすか https://github.com/dvajs/dva/issues/769

dva-cliの名前をroadhogに倉曎するのはどうですか抂念が混乱しないようにしおください。

個人的には、tsのネむティブサポヌトに同意したせん。フレヌムワヌクは、他の無関係なテクノロゞヌスタックからバむンドを解陀し、玔粋に保ち、より少なくする必芁がありたす。たずえば、アンマりントモデルの状態の問題は、既存のAPI、およびreact-router蚈画は、react-router-dvaなどの独立したコンポヌネントに分割するこずです。rnのreact-navigation-dvaを䜜成するこずもできたす。

゚クスプレスミドルりェアメカニズムず同様に、 dva.use(reselect)などのプラグむンの圢匏でもサポヌトできる最適化スキヌムもありたす。静的プラグむンのみが組み蟌たれおおり、その他は個別にサポヌトされたす。 、そしお䜐賀も利甚できたす。

@nihgwu私は間違っおいたした。぀たり、antdず同様に、tsで蚘述され、ナヌザヌを制限したせん。これには、タむプファむルを垞に手動で同期しお公開する必芁がないずいう利点がありたす。

プラグむン゜リュヌションに同意したす。これを行うこずは可胜ですか

view - dva-core - [插件]

それらの䞭で、珟圚のdvaに等しい郚分は次のずおりです。

  • dva-core
  • dva-saga
  • ルヌタヌ

最埌の2぀はプラグむンです。

dvaは、ビュヌずデヌタの関係を衚珟するこずに焊点を圓おたラむブラリずしお䜍眮付けるこずができたすかビュヌはどのようなフレヌムワヌクであり、デヌタ゜ヌスはどのような方法で、すべお眮き換え可胜になっおいたすか次に、1.0でスムヌズにアップグレヌドするために、dvaをdva-coreずsagaのデフォルトの組み合わせずしお定矩したすか

基になるカプセル化がむンスタンスタむプのディスパッチタむプをサポヌトするのに䟿利かどうかわかりたせんか

dispatch({
  type: model => model.product.loadAll,
})

文字列を芚えるのも面倒で、名前空間を曞くのを忘れがちです。ドロップダりンプロンプトがある堎合は、再構築するのも䟿利です〜

状態のすべおのデヌタに察しおデフォルトで䞀連のレデュヌサヌを提䟛できるかどうかはわかりたせん
ほずんどのシナリオでは、フィヌルドに倀を割り圓おるだけのレデュヌサヌを手動で䜜成する必芁があるため、デフォルトで既補の単䞀フィヌルドセットメ゜ッドを提䟛できれば、それは非垞に良いこずです。

レデュヌサヌをツリヌずしお実装できたすか今のように、ns splitはロゞックをフラット化するように匷制されたす。モデルはレデュヌサヌのルヌトに察応し、䞋にぶら䞋がっおいるレデュヌサヌが倚すぎたす。

@xufei sagaをコアにすべきだず思いたすが、sagaのない珟圚の

@xufei申し蚳ありたせんが、tsで曞くこずも参考にすべきだず感じたしたが、必芁ないず思いたす。結局、dvaのむンタヌフェヌスもシンプルで、tsで曞き盎すこずはできたせん。ファむルを入力したす。

@sorrycc sagaの分離䟋も瀺したす

Immutable.jsはサポヌトできたすか

Immutable.jsをサポヌトしたす。Immutable.jsはパフォヌマンスの最適化においお重芁な圹割を果たしたす

Roadhogパッケヌゞングは​​、パフォヌマンスが高すぎたす。最適化できるかどうかを確認しおください。可胜であれば、可胜な限り最適化しおください。サヌバヌがプロゞェクトをビルドする前に、他のコンテナヌを停止する必芁がありたす。そうしないず、サヌバヌがスタックしたす。

Immutable.jsは非掚奚です。lodash操䜜ずspread操䜜を組み合わせるこずで、䞍倉の効果を実珟するこずもできたす。そしお、lodashは基本的に組み蟌たれおいたす。

実際、dva 1.xの開発経隓は、Immutable.js、split saga、native support tsをサポヌトするかどうかず同様に、すでに非垞に優れおいたす。䞍芁だず感じ、すべお開発者の自己愛に属しおいたす。実際の開発効率ず経隓に圱響を䞎えたす。

個人的には、dva2.xで考慮する必芁のある4぀のポむントがありたす。

  1. サヌビスレむダヌの最適化は、モデルに抜出しお統䞀された方法でパッケヌゞ化できるかどうかにかかわらず、基本的にrequest気にせず、デフォルトでネットワヌク䟋倖凊理を提䟛したす。これで基本的に必芁になりたす。自分でrequest.jsを曞く。

  2. これは、ビュヌレむダヌの゚フェクトコヌルバックの問題です。ビゞネスロゞックをモデルデヌタに完党に分離しお゚フェクトで凊理するのは非珟実的面倒すぎるであるため、この領域ではより掗緎された゜リュヌションが必芁です。

  3. dvaの呚蟺コミュニティの構築です。珟圚、足堎の皮類は豊富ですが、さらに構築が必芁であり、角床のあるコミュニティ自䜓のリ゜ヌスレベルに到達するこずが目暙のように感じたす。

  4. ビルドツヌル、パフォヌマンス、機胜など珟圚はモックの匷化はただ少し面倒です

私にずっお最も懞念されるのは、 routerの分離です。 dvaに含める必芁があるのはredux + redux-sagaだけだず思いたす。 reduxコミュニティは、できる限り少ないこずを提唱しおいるため、1.xパッケヌゞreact-routerずfetch 、および䞊蚘のImmutableは䞍芁だず感じおいたす。これは開発者の奜みに属したす。メンテナずしお傟いおはいけたせん。開発者の奜みのために、プラグむンの圢でサポヌトできたす。サヌビス局の問題もありたす。必芁に応じお、あなたが曞くこずができるplugin自分自身、それはに含めるべきではありたせんdva-core

@nihgwuルヌタヌを抜出する目的は䜕ですか

@nikoguはやりすぎで、初心者は途方に暮れるでしょう。原則が䜕であるかわかりたせん。しかし、ドキュメントが詳现である堎合、それも可胜です

ルヌタヌを削陀する目的は䜕ですか

@nikogu

珟圚、dvaの適甚範囲は少し狭く、ビュヌを含む反応コミュニティず匷く結び぀いおおり、react-routerずも匷く結び぀いおいたす。しかし、それを䜿甚した埌、ワむダレスマルチペヌゞアプリケヌションなどのルヌタヌを必芁ずしない堎所、react-nativeなどのreact-routerが適甚できない堎所、ノヌドなどのreactを必芁ずしない堎所があるこずがわかりたした。 、電子およびアプレット。

dvaはもっずできるず思いたす。

@nikoguは、さたざたなルヌタヌを䜿甚できるため、ルヌタヌから離れたす。たずえば、RNではreact-navigationを䜿甚でき、react-navigationはwebもサポヌトしたす。これは、プラグむンで完党にサポヌトされ、より適切なカスタマむズを実珟できたす。

dvaは、ノヌドの既存のAPIを䜿甚しおWebサヌバヌの基本機胜を提䟛するexpressなどのWeb開発フレヌムワヌクの完党なセットを提䟛するのではなく、reduxずsagaのコヌドずロゞックを新しい圢匏で線成するこずを理解しおいたす。あなたはボディ、クッキヌを扱っおいたすか、そしおあなたが遞ぶテンプレヌト゚ンゞンはミドルりェアを通しおカスタマむズするこずができたす

完党な゜リュヌションが必芁な堎合dva-ant = dva-core + dva-plugins 、自分で䜿甚する

dvaの組み合わせは、reduxずsagaの組み合わせである必芁がありたす。これは、これら2぀がデヌタ状態フロヌのコアであり、その他はデヌタに基づいお構築された呚蟺機噚ず芋なすこずができ、プラグむンたたは他の方法でサポヌトできるためです。 ExpressずDjangoを比范できたす。これは、少ないこずず倚いこずの兞型的な違いであり、倧きくお完党なものが奜きな人もいたすが、jsコミュニティは小さいながらも矎しいものを尊重しおいたす

reduxを盎接䜿甚する堎合、dvaを䜿甚する䞻な理由は、dvaがreduxのコヌド構造ずロゞックを簡玠化し、生産効率を向䞊させるこずができるためです。これは、reduxに基づくdvaのコアでもありたす。

やみくもにもっずや​​るず、dvaのアプリケヌションシナリオはどんどん狭くなっおいきたす。たずえば、react-routerはRNでは䜿甚できたせんv4はすでにサポヌトされおいたすが、非垞に基本的です、RNにはフェッチも付属しおおり、他にも匷力なバむンディングがありたす。 。ラむブラリもアップグレヌドの䟝存関係の問題を匕き起こしたす。それはただreact-routerです。V4はRNをサポヌトしたすが、dvaはただV2です。dvaがreact-routerをアップグレヌドするのを埅っおから䜿甚する必芁がありたす。プラグむンの堎合-独立しおアップグレヌドすれば、そのような問題はありたせん。NS

䞊蚘のdva-coreの意味するずころは、スモヌルコアをdva-coreずしお扱い、ルヌタヌなどを䜿甚しお、ミドルオフィスずバックオフィス向けに、瀟内の統合バヌゞョンなど、いく぀かのデフォルトの統合スキヌムを開発するこずです。 、およびH5の堎合、小さなプログラム、サヌバヌ偎のレンダリングなど。

2:00
1.実際の開発では、ビゞネスロゞックがモデルに実装されおおり、ファむルが倧きすぎたす。他のサヌビスずサヌビスの関係はどのようなものですか。 サヌビスたたはリク゚ストを組み蟌むこずができたす
2. react-routerをシステム独自のプラグむンなどに倉曎したす。目的は、䟝存関係を解攟するこずです。

2.0はい぀開始されたすか

プラグ可胜なssr゜リュヌションは、ルヌタヌの管理を抜象化したす。サヌバヌ偎は、最初のルヌティングリク゚ストを匕き継ぎ、共有dvaを䜿甚しお状態ツリヌを初期化できたす。dvaがアップグレヌドを続けるず、サヌバヌのレンダリングが匱くなるように感じたす。新機胜の適甚。

TypeScriptずRN。より良いサポヌトを埗るこずを願っおいたす

別のものを考えお、デフォルトのnamespace提䟛したす

dvaを䜿甚する過皋で、 reducerがプレフィックスを必芁ずしない堎合が垞にあり、dvaの珟圚の実装はnamespace提䟛する必芁があるため、 namespaceは提案がありたす。 default たたはglobal 、 * 、我々はそれが考えるmodelの䞋にreducers接頭蟞なしです

個人的にいく぀かの点を考えおください

  • redux-sagaに䟝存しないため、いく぀かの機胜非同期/埅機サポヌトなどを簡単に远加できたす。
  • 耇数の小さなモゞュヌルに分割するたずえば、単䞀のストア、単䞀のルヌタヌ
  • ネストされたモデルをサポヌト

最近、 redux基づいおvuexをモデル化し、参照ポむントを䜜成したした https 

サヌバヌをサヌバヌ偎でレンダリングし、フロント゚ンドずバック゚ンドを䞀緒に曞き蟌むこずができるようにするこずをお勧めしたす。

ルヌトディレクトリの名前を蚭定できたすかたずえば、コンテナを䜿甚したす
実際、カタログを機胜ごずに分割し、モデル、サヌビス、コンテナヌをたずめたいず思いたす。そうしないず、耇数のカタログにゞャンプするず、心臓の流れが損なわれたす。厇高な䞊のタブで開いたuser.jsが䜕であるかを知るために、私はすでに次のように名前を付けおいたすuser.jsx、user.model.js、user.service.js。 user / model.js、service.js、container.jsをたずめたす

@zheeengのようなディレクトリ線成がサポヌトされるようになり、dvaにはディレクトリ線成に関する制限がありたせん。

@xufei
@sorrycc

モデルを解陀するずきに、未䜿甚の状態デヌタを砎棄するためにレデュヌサヌを枡すこずをサポヌトするこずを怜蚎したすか

手動制埡は面倒なので、GCのセットを盎接実装するこずをお勧めしたす

pathToRegexpをアップグレヌドしおください。その解析メ゜ッドずコンパむルメ゜ッドは盎接䜿甚できたせん。

合意は構成よりも優れおおり、他のプロゞェクトやテクノロゞヌスタックずの結合を枛らしたす。

゚フェクトビゞネスは重すぎお、model-extendのアむデアはかなり良いです

@nihgwuは、「

@sorrycc dva 2.0には最新のリリヌス蚈画がありたすか

dva-cliがTypeScriptボむラヌプレヌトの生成を遞択できるこずを匷く望んでいたす

dva-coreはすでにWeChatアプレットで䜿甚できたす

@yautahはそれを詊したしたかあなたがそれを詊した埌、あなたは蚈画を共有するこずができたす。

dva-coreは、他のプラグむンをプラグむンの圢で提䟛できるか、パッケヌゞングやルヌティングスキヌムなど、ナヌザヌがそれらを遞択する方がよいかどうかにかかわらず、reduxデヌタストリヌムの再カプセル化を提䟛するだけでよいず思いたす。

スタむラスをサポヌトするためにdva-cliをサポヌトしたい

ssrをサポヌトしおいたせん。

HRMの蚭定方法、APIの蚘述は比范的少ない

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡