Matreshka.js 2-宇宙で最も簡単なフレームワーク

Matreshka.jsは、ジュニアとシニアのギャップを埋めます

Matreshka.jsフレームワークの2番目のバージョンのベータ版がリリースされました。 リリースは、最後のパッチの1週間後(さらに数日後)にリリースされ、レポートはこの投稿のリリースから始まります。 プロジェクトは長い間プレアルファ/アルファステータスであり、大きな変更がなく実際のプロジェクトでチェックされているため、バージョンは安定していると見なされ、ベータステータスは純粋な形式です。













» リポジトリ

» ウェブサイト







フレームワークの位置決め



素朴な「みんなのためのJavaScriptフレームワーク」の代わりに、Matreshka.jsは「シンプルなフレームワーク」として位置付けられています。 サイトからテキストを複製する代わりに、このポイントをより詳細に説明するテキストへのリンクを配置させてください







一般的な変更





const bindNode = require('matreshka/bindnode'); bindNode(object, key, node);
      
      









リリースプロセスの自動化



以前は、新しいリリースをリリースするために、いくつかの繰り返しアクションを実行する必要がありました。









したがって、変更によって問題が修正された場合、リリースは急いでいませんでしたが、これはマイナーと見なされ、変更のリストを蓄積して週末に新しいバージョンをリリースすることを好みました(もちろん、重大な問題の修正はできるだけ早く出ました)。







プロジェクトへのセマンティックリリースの追加、Travis CIの使用、およびその他の変更(たとえば、ロシア語の変更ログの削除)のおかげで、リリースのリリースは非常に単純なスキームに従って行われます。









さらに、フレームワーク自体に新しい機能を追加することはほとんどありません(以下で詳しく説明します)。そのため、最後から2番目のポイントは無視できます。







修正またはfeatプレフィックス付きのコミットがGithubに到達すると、次のことが起こります。









1日にいくつかのパッチが作成されても驚かないでください(そのようなケースがまれになることを願っています)。







同様に、サイトリポジトリコミットにより、TravisはPM2を使用してサイトをサーバーに自動的にデプロイします。







その他の改革





APIの変更



最大の変更点は、村にも都市にもなかった多くの機能(たとえば、 trim



機能)の削除でした。







これらの機能が存在したのはなぜですか? 動機は簡単でした。フレームワークの内部メカニズムに必要でしたが、これらの関数が存在する場合、パブリックフレームワークAPIに追加してみませんか?







その結果、ドキュメントは大幅に膨らみ、フレームワークの使いやすさに最も心地よい効果がなく、多くの有用な方法が情報ノイズで失われ、そのような機能を削除する機能が失われました(これは重大な変更であるため)。







2番目のバージョンから、Matreshka.jsにはフレームワーク自体に固有の機能が含まれていますが、「共通」関数は含まれていません。 いくつかのメソッドを削除した具体的な理由については、フォーラムに書きました







新しい機能は、フレームワーク自体に含まれるよりも、追加のプラグインとライブラリの形で提供される可能性が高くなります(ただし、後者は除外されません)。







APIの変更点については、ドキュメントのテキストが重複しないように、以下で非常に簡単に説明します。







(!!!) -重大な変更

(!) -古いアプリケーションに影響を与えない可能性が高い破壊的な変更







削除されたもの



  1. (!!!) Matreshka.delay



  2. (!!!) Matreshka#delay



  3. (!!!) Matreshka.define



  4. (!!!) Matreshka#define



  5. (!!!) Matreshka.defineSetter



  6. (!!!) Matreshka#defineSetter



  7. (!!!) Matreshka.defineGetter



  8. (!!!) Matreshka#defineGetter



  9. (!!!) Matreshka#getAnswerToTheUltimateQuestionOfLifeTheUniverseAndEverything



  10. (!!!) Matreshka.trim



  11. (!!!) Matreshka.orderBy



  12. (!!!) Matreshka.noop



  13. (!!!) Matreshka.extend



  14. (!!!) Matreshka.each



  15. (!!!) Matreshka.bound



  16. (!!!) Matreshka#bound



  17. (!!!) Matreshka.$bound



  18. (!!!) Matreshka#$bound



  19. (!!!) Matreshka.boundAll



  20. (!!!) Matreshka#boundAll



  21. (!!!) Matreshka.randomString



    現在はここにあります
  22. (!!!) Matreshka.get



  23. (!!!) Matreshka#get



  24. (!!!) Matreshka.deepFind



  25. (!!!) Matreshka.setProto



  26. (!!!) Matreshka.toArray



  27. (!!!) Matreshka.version



  28. (!!!) Matreshka#sandbox



  29. (!!!) Matreshka#$sandbox



  30. (!!!) Matreshka.Object#toNative



  31. (!!!) Matreshka.Object#toObject



  32. (!!!) Matreshka.Array#toNative



  33. (!!!) Matreshka.Array#toArray



  34. (!!!) Matreshka.binders.file



    現在はここにあります
  35. (!!!) Matreshka.binders.dropFile



    現在はここにあります
  36. (!!!) Matreshka.binders.dragOver



    現在はここにあります
  37. (!!!) Matreshka.Array#each



  38. (!!!) Matreshka.Array#hasOwnProperty



  39. (!!!) Matreshka.Array#useBindingsParser



  40. (!!!) Matreshka.Object#hasOwnProperty



  41. (!!!) window.Class



    (グローバル変数の代わりにMatreshka.Class



    を使用)
  42. (!!!) window.$b



    Matreshka.$b



  43. (!!!) Matreshka.$



  44. (!!!) matreshka-magic



    ライブラリ
  45. (!!!) Matreshka.binders.innerHTML



  46. (!!!) Matreshka.binders.innerText



  47. (!!!) Matreshka.binders.attribute



  48. (!!!) Matreshka.binders.property





名前が変更されたメソッドとプロパティ



  1. (!!!) Matreshka#linkProps



    > Matreshka#calc



  2. (!!!) Matreshka.to



    > Matreshka.toMatreshka



  3. (!!!) Matreshka#setClassFor



    > Matreshka#instantiate



  4. Matreshka.Object#jset



    > Matreshka.Object#setData



    jset



    は削除されません)
  5. (!!!) Matreshka#isMK



    > Matreshka#isMatreshka



  6. (!!!) Matreshka.Object#isMKObject



    > Matreshka.Object#isMatreshkaObject



  7. (!!!) Matreshka.Array#isMKArray



    > Matreshka#isMatreshkaArray



  8. (!!!) Matreshka.useAs$



    -> Matreshka.useDOMLibrary





bindNode



およびunbindNode



変更



  1. (!!!)構文{ key: [node, binder] }



    サポートされなくなりました。
  2. (!!!)引数構文のヒープはサポートされなくなりました。
  3. 新しい構文([{key, node, binder, event}], commonEventOptions)



  4. 新しい構文{key: { node, binder }}



    および{key: [{ node, binder }]}



    (Eureka!この構文を使用すると、 bindNode



    1回呼び出すだけで多くのバインディングをうまくハングさせることができます)。
  5. (!)イベントbind



    bind:KEY



    は、 bind:KEY



    された各ノードで呼び出されます。
  6. (!) unbind



    unbind:KEY



    はそれぞれのアンタイドノードで呼び出されます。
  7. useExactBinder



    フラグ。
  8. (!!!) assignDefaultValue



    フラグのassignDefaultValue



    getValueOnBind



    変更されました。
  9. フラグsetValueOnBind



  10. (!!!) debounce



    フラグは削除されました。
  11. (!) debounceSetValue



    フラグ。
  12. (!)フラグdebounceGetValue



  13. debounceSetValueOnBind



    フラグ。
  14. debounceGetValueOnBind



    フラグ。
  15. debounceGetValueDelay



    フラグ。
  16. debounceSetValueDelay



    フラグ。
  17. (!!!) deep



    ではなくexactKey



    フラグ。


詳細については、 bindNodeおよびunbindNodeのドキュメント 参照してください。







バインダーの変更



  1. 新しいdestroy



    バインダーメソッド。
  2. (!!!) className



    は感嘆符の構文をサポートしなくなりました。 代わりに、2番目の引数としてfalse



    を渡すことができます。
  3. すべてのバインダーメソッドのbindingOptions



    引数(たとえば、 getValue(bindingOptions) {...}



    )。


詳細については、 bindNodeおよびバインダーのドキュメントを参照してください。







parseBindings



変更



  1. このメソッドはeventOptions



    2番目の引数eventOptions



    取ります
  2. {{}}



    span



    要素に置き換えられません。
  3. (!!!)最初の引数は必須です。
  4. {{ }}



    スペースを使用できます。


詳細については、 parseBindingsのドキュメントを参照してください







bindSandbox





  1. このメソッドは、新しいサンドボックスをバインドする前に、以前のサンドボックスを解きます。


詳細については、 bindSandboxのドキュメントを参照してください







calc



メソッドの変更(以前はlinkProps



と呼ばれていlinkProps





  1. (!!!) debounce



    フラグの名前がdebounceCalc



    変更されました。
  2. (!) debounceCalc



    デフォルトはtrue



    です。
  3. debounceCalcOnInit



    フラグ。
  4. exactKey



    フラグ。
  5. (!!!) skipLinks



    フラグは、 set



    メソッドで使用するためにskipCalc



    に名前skipLinks



    変更されskipCalc



  6. (!!!)構文[inst, key, inst, key]



    削除[inst, key, inst, key]



    れました。
  7. 新しい構文{ target: {source, event, handler} }



    (Eureka!多くのプロパティでcalc



    メソッドを1回呼び出すことができます)。
  8. 新しい構文[{object, key}]



  9. debounceCalcDelay



    フラグ。


詳細については、 calcのドキュメントを参照してください。







Matreshka.Array



変更



  1. (!!!) skipMediator



    フラグの名前がskipItemMediator



    変更されskipItemMediator



  2. (!) pull



    メソッドは、オブジェクトと数値のみをサポートします。
  3. from



    of



    継承されます。
  4. (!!!) addone



    イベントaddone



    は、addedではなく、 addedItem



    プロパティの下に追加されたaddone



    が含まれます。
  5. (!!!) removeone



    イベントremoveone



    には、 removedItem



    代わりに、 removedItem



    プロパティの下にリモートオブジェクトが含まremoved



    ます。
  6. (!) itemRenderer



    には、複数のノードが含まれている場合はspan



    しません。 代わりに例外がスローされます。
  7. useBindingsParser



    プロパティは削除useBindingsParser



    れました。
  8. (!!!)バインディングパーサーはデフォルトで有効になっています。
  9. includes



    メソッド。
  10. find



    メソッド。
  11. メソッドfindIndex



  12. fill



    メソッド。
  13. copyWithin



    メソッド。
  14. keys



    メソッド。
  15. メソッドvalues



  16. entries



    方法。


Matreshka.Arrayのドキュメント、 pullfromofitemRendererMETHODを 参照してください







Matreshka.Object



変更



  1. データを処理するプロパティ(削除ではない)が変更されたときに発生するset



    イベント。
  2. jset



    メソッドの名前はsetData



    変更されsetData



    (コミュニティの要求により、古い名前は引き続き存在します)。
  3. replaceData



    メソッドのreplaceData



    フラグ。
  4. isDataKey



    メソッド。
  5. メソッドvalues



  6. entries



    方法。


詳細については、 Matreshkaのドキュメントを参照してくださいObjectsetDataisDataKeyvaluesentries







Matreshka.Class



変更



  1. 静的メソッドは継承されます。
  2. タイプsymbol



    名を持つプロパティは、プロトタイププロパティと静的プロパティの両方としてサポートされます。


詳細については、 Matreshka.Classのドキュメントを参照してください。







その他の変更



  1. 静的チェーン方式。
  2. (!!!) sandbox



    プロパティの取得メソッドと設定メソッドは、すべてのオブジェクトに対して例外をスローします。
  3. (!!!) container



    プロパティのMatreshka.Array



    と設定Matreshka.Array



    Matreshka.Array



    インスタンスに対して例外をMatreshka.Array



    ます。
  4. (!!!)スペースで区切られたキーのリストは、どのメソッドでもサポートされなくなりました。
  5. いくつかの明白でないバグを修正
  6. すべてのクラスと関数は、CommonJSモジュールとしてインポートできます( import text from 'matreshka/binders/text'



  7. 明確な間違い。


Matreshka.jsでの作業が原因で表示されたプロジェクト





ご清聴ありがとうございました!








All Articles