Belirli bir başlangıç verileri kümesine sahip bir bileşenim var:
data: function (){
return {
modalBodyDisplay: 'getUserInput', // possible values: 'getUserInput', 'confirmGeocodedValue'
submitButtonText: 'Lookup', // possible values 'Lookup', 'Yes'
addressToConfirm: null,
bestViewedByTheseBounds: null,
location:{
name: null,
address: null,
position: null
}
}
Bu, kalıcı bir pencere için veridir, bu yüzden gösterdiği zaman bu verilerle başlamasını istiyorum. Kullanıcı pencereden iptal ederse, tüm verileri buna sıfırlamak istiyorum.
Verileri sıfırlamak için bir yöntem oluşturabileceğimi ve tüm veri özelliklerini manuel olarak orijinallerine geri ayarlayabileceğimi biliyorum:
reset: function (){
this.modalBodyDisplay = 'getUserInput';
this.submitButtonText = 'Lookup';
this.addressToConfirm = null;
this.bestViewedByTheseBounds = null;
this.location = {
name: null,
address: null,
position: null
};
}
Ama bu gerçekten özensiz görünüyor. Bu, bileşenin veri özelliklerinde bir değişiklik yaparsam, sıfırlama yönteminin yapısını güncellemeyi hatırladığımdan emin olmam gerektiği anlamına gelir. Küçük bir modüler bileşen olduğu için bu kesinlikle korkunç değil, ama beynimin optimizasyon kısmının çığlık atmasına neden oluyor.
İşe yarayacağını düşündüğüm çözüm, bir readyyöntemdeki ilk veri özelliklerini almak ve ardından bu kaydedilen verileri bileşenleri sıfırlamak için kullanmak olacaktır:
data: function (){
return {
modalBodyDisplay: 'getUserInput',
submitButtonText: 'Lookup',
addressToConfirm: null,
bestViewedByTheseBounds: null,
location:{
name: null,
address: null,
position: null
},
// new property for holding the initial component configuration
initialDataConfiguration: null
}
},
ready: function (){
// grabbing this here so that we can reset the data when we close the window.
this.initialDataConfiguration = this.$data;
},
methods:{
resetWindow: function (){
// set the data for the component back to the original configuration
this.$data = this.initialDataConfiguration;
}
}
Ancak initialDataConfigurationnesne verilerle birlikte değişiyor (bu mantıklı çünkü okuma yönteminde initialDataConfigurationveri işlevinin kapsamını alıyoruz.
Kapsamı devralmadan ilk yapılandırma verilerini almanın bir yolu var mı?
Bunu çok mu düşünüyorum ve bunu yapmanın daha iyi / daha kolay bir yolu var mı?
İlk verileri kodlamak tek seçenek mi?