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 HTML5 este indicat sa contina meniul cu link-uri de navigare in site?
<section> <nav> <article>
<nav><ul>
 <li><a href="http://coursesweb.net/css/" title="CSS Course">CSS Course</a></li>
 <li><a href="http://www.marplo.net/jocuri/" title="Flash Games">Flash Games</a></li>
</ul></nav>
Ce proprietate CSS muta elementrul in dreapta sau stanga de la locul unde e?
text-align clear float
.some_class {
  width: 30%;
  float: left;
}
Clic pe metoda obiectului Math care rotunjeste numarul x descrescator la cel mai apropiat intreg.
Math.ceil(x) Math.abs(x) Math.floor(x)
var num = 12.34567;
num = Math.floor(num);
alert(num);       // 12
Indicati functia PHP care returneaza numarul de caractere dintr-un sir.
mb_strlen() count() stristr()
$str = "sir cu caractere utf-8 åèö";
$nrchr = mb_strlen($str);
echo $nrchr;        // 29
Clic pe raspunsul potrivit la intrebarea: "When it happened?".
On the 7th of July 1996 It is a quarter to 5. Nice weather.
When it happened? On the 8th of August 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Indicati raspunsul potrivit la intrebarea: "¿Cuando sucedió?".
Hace buen tiempo. En el 8 de Agosto de 2001 Son las tres menos cuarto.
¿Cuando sucedió? En el 8 de Agosto de 2001.
- Cand s-a intamplat? Pe 8 August 2001.
Proprietati Computed

Last accessed pages

  1. Curs CSS Online Tutoriale CSS3 (4434)
  2. Conditional IF in Limba Engleza - Fraze Conditionale (39931)
  3. Prezentul simplu si continuu - Present Tense Simple and Continuous (52156)
  4. Poezii pentru copii, in engleza (8573)
  5. Lucrul cu stiluri CSS (2771)

Popular pages this month

  1. Prezentul simplu si continuu - Present Tense Simple and Continuous (3122)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (2511)
  3. Gramatica limbii engleze - Prezentare Generala (2356)
  4. Prezent perfect si Prezent perfect continuu - Present perfect and Continuous (1960)
  5. Trecutul simplu si continuu - Past Tense Simple and Continuous (1609)