Proprietatile computed sunt ca si metodele, dar cu unele diferente. Proprietatile computed se definesc in obiectul computed, si in general se folosesc sa actualizeze automat anumite proprietati sau structuri template cand alte date din template se modifica.
Sintaxa:
var vm = new Vue({
//...
computed: {
prop_name: function(){
//code and value to return
}
}
});
Iata un exemplu, textul adaugat intr-o caseta input va modifica valoarea template-ului {{msg}}. Iar prin definirea unei proprietati computed (aici reversedMsg), cand datele pentru {{msg}} se schimba, expresia vm.reversedMsg e automat actualizata si returneaza textul in sens invers.
<div id='example'>
Add some text: <input type='text' v-model='msg'/>
<p>Messag: {{msg}}</p>
<p>Computed reversed message: "{{ reversedMsg }}".</p>
</div>
<script>
var vm = new Vue({
el: '#example',
data: {
msg: 'Hello'
},
computed: {
// a computed getter
reversedMsg: function(){
// `this` points to the vm instance
return this.msg.split('').reverse().join('')
}
}
});
</script>
Functia computed de la
reversedMsg e folosita ca un getter (transmite valoare) pentru
vm.reversedMsg.
Vue stie ca
vm.reversedMsg depinde de valoarea proprietatii
vm.msg, astfel se va actualiza orice legatura care depinde de
vm.reversedMsg cand
vm.msg se modifica, dupa cum puteti vedea in urmatorul exemplu.
var vm = new Vue({
data: {
msg: 'Hello'
},
computed: {
// a computed getter
reversedMsg: function(){
// `this` points to the vm instance
return this.msg.split('').reverse().join('')
}
}
});
console.log(vm.reversedMsg) // olleH
vm.msg = 'Goodbye';
console.log(vm.reversedMsg) // eybdooG
Proprietatile computed sunt memorate in cache pe baza dependentelor lor reactive. O proprietate computed se va reevalua doar atunci cand una din dependentele sale se modifica.
Cat timp vm.msg nu se modifica, accesarile la proprietatea computed vm.reversedMsg vor returna rapid valoarea din cache fara sa ruleze iar functia.
Computed Set si Get
In mod implicit, proprietatile computed sunt "getter-only" (doar pentru a returna valoare), dar se poate face si un setter (care seteaza o valoare) cand aveti nevoie. In acest caz sintaxa e:
var vm = new Vue({
//...
computed: {
prop_name: {
get: function(){
//code for getter
},
set: function(){
//code for setter
}
}
}
});
Iata un exemplu:
<div id='demo'>
Full Name: <input type = 'text' v-model='fullname' /><br><br>
First Name: {{first_name}}<br>
Last Name: {{last_name}}
</div>
<script>
var vm = new Vue({
el: '#demo',
data: {
first_name :'Mar',
last_name : 'Plo'
},
computed :{
fullname : {
get : function(){
return this.first_name+' '+this.last_name;
},
set : function(name){
var fname = name.split(' ');
this.first_name = fname[0];
this.last_name = fname[1]
}
}
}
});
</script>
Cand rulam codul si scriem in caseta de text, first_name si last_name se vor actualiza prin functia
set.
Functia
get
returneaza first_name si last_name, iar functia
set
le seteaza valoarea cand se editeaza caseta de text.
Un Test simplu in fiecare zi
HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tag se foloseste pentru a adauga liste in elemente <ul> si <ol>?
<dt> <dd> <li><ul>
<li>http://coursesweb.net/html/</li>
<li>http://www.marplo.net/html/</li>
</ul>
Care valoare a proprietatii "display" seteaza elementul ca tip bloc si afiseaza un punct in fata?
block list-item inline-block.some_class {
display: list-item;
}
Care instructiune JavaScript transforma un obiect in sir JSON.
JSON.parse() JSON.stringify eval()var obj = {
"courses": ["php", "javascript", "ajax"]
};
var jsonstr = JSON.stringify(obj);
alert(jsonstr); // {"courses":["php","javascript","ajax"]}
Indicati clasa PHP folosita pentru a lucra cu elemente HTML si XML in PHP.
stdClass PDO DOMDocument$strhtml = '<body><div id="dv1">CoursesWeb.net</div></body>';
$dochtml = new DOMDocument();
$dochtml->loadHTML($strhtml);
$elm = $dochtml->getElementById("dv1");
echo $elm->nodeValue; // CoursesWeb.net
Indicati forma de Prezent Continuu a verbului "to live" (a trai /a locui)
lived living liveingI`m living here.
- Traiesc /Locuiesc aici.
Care este forma de Gerunziu (sau Participiu Prezent) a verbului "vivir" (a trai /a locui)?
viviĆ³ vivido viviendoEstoy viviendo aquĆ.
- Traiesc /Locuiesc aici.