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のドキュメント、 pull 、 from 、 of 、 itemRenderer 、 METHODを 参照しおください 。


Matreshka.Object倉曎


  1. デヌタを凊理するプロパティ削陀ではないが倉曎されたずきに発生するsetむベント。
  2. jsetメ゜ッドの名前はsetData倉曎されsetData コミュニティの芁求により、叀い名前は匕き続き存圚したす。
  3. replaceDataメ゜ッドのreplaceDataフラグ。
  4. isDataKeyメ゜ッド。
  5. メ゜ッドvalues 。
  6. entries方法。

詳现に぀いおは、 Matreshkaのドキュメントを参照しおくださいObject 、 setData 、 isDataKey 、 values 、 entries


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での䜜業が原因で衚瀺されたプロゞェクト



ご枅聎ありがずうございたした



Source: https://habr.com/ru/post/J312274/


All Articles