2017-05-02 3 views
2

Context zu verhindern: zwei Ansichten A und B, sind mit dem gleichen Modell verbunden:Zwei Ansichten ein Modell, wie Blick von unnessary Aktualisierung/rerender

  • sowohl das Zustandsmodell ändern
  • müssen sowohl ihre UI auf Modell aktualisieren

Frage ändern: Wie Ansicht A von re-ren verhindern Dering, wenn der Modellwechsel von A ausgelöst wird, während A immer noch aktualisiert werden kann, wenn das Modell durch B geändert wird?

Tentative Lösung: einen Verweis auf die Ansicht, die die Übergabe-Ereignis auslöst, ähnlich

PS event.target: Wir sind nicht React.js oder unveränderliche Daten. Daher kann ein Modell, das immer wieder rendert oder verglichen wird, mit dem Betrachtungszustand teuer und fehleranfällig sein. Wir versuchen, dem Redux-Muster zu folgen, indem wir ein einzelnes Modell haben, das den gesamten App-Status enthält.

Antwort

0

Ich bin mir nicht sicher, ob das im Rückgrat gefördert wird. Es klingt, als würde in der Ansicht A etwas passieren, was dazu führt, dass sowohl die Ansicht A als auch die Ansicht B erneut gerendert werden, Sie aber das erneute Rendern der Ansicht A an einer anderen Stelle behandeln und daher nicht auf der Seite rendern möchten Modellwechselereignis.

Ist dies der Fall, dass ich glaube, Sie brauchen A für Änderungen auf einem kleineren Teil des Modells zu hören zu sehen, wie diese (von http://backbonejs.org/#Events)

book.on({ 
    "change:author": authorPane.update, 
    "change:title change:subtitle": titleView.update, 
    "destroy": bookView.remove 
}); 

Alternativ Sie das Änderungsereignis mit den {silent:true} Schweigen könnten Option, wenn das Modell geändert wird, und rufen Sie dann das Rendern direkt auf Ansicht B auf. Ich denke jedoch nicht, dass dies eine gute Lösung ist.

Verwandte Themen