Acest tutorial este o prezentare de baza a functiei Vue js render.
Functia render este o alternativa la proprietatea template, si ofera posibilitatea de a face componenta Vue dinamica. De asemenea, se pot transmite argumente si valori de la componenta parinte la structura HTML rezultata.
Sa vedem un exemplu din care se intelege cum functioneaza proprietatea render.
- In urmatorul exemplu cream o componenta Vue (denumita "comp_test") care poate reda un element HTML cu definire dinamica: nume-tag, culoare, marime-font si id.
<div id = 'demo'>
<comp_test :elm_type="'h1,#0000ee,30,title'">Libertatea este Libera</comp_test>
<comp_test :elm_type="'h3,#00ce00,25,h3tag'">Ca sa am pace, dau pace.</comp_test>
<comp_test :elm_type="'p,#ee0000,24,ptag'">Gandul precede perceptia.</comp_test>
<comp_test :elm_type="'div,#1234fb,24,divtag'">Pace mintii, sanatate trupului.</comp_test>
</div>
<script>
Vue.component('comp_test',{
render : function(createElement){
//gets an array of values from the string added to elm_type attribute
var a = this.elm_type.split(',');
//creates and returns the DOM element with data from elm_type, and defined in the attrs object-parameter
return createElement(a[0],{
attrs:{
style:'color:'+a[1]+';font-size:'+a[2]+'px;',
id:a[3]
}
},
this.$slots.default //To use the text added in component
)
},
//defines the prop required in each <comp_test> as a string
props:{
elm_type:{
attributes: String,
required: true
}
}
});
var vm = new Vue({
el: '#demo'
});
</script>
Dupa cum puteti vedea, fiecare tag <comp_test> leaga o proprietate
:elm_type care e definita in
props in componenta Vue.
Atributul
elm_type din tag trebuie sa contina un sir cu datele pentru elementul HTML care va fi redat (
'nume-tag, culoare, marime-font, id').
In functia
render se preia intr-un Array datele din sirul de la atributul "elm_type".
var a = this.elm_type.split(',');
Functia
render primeste metoda
createElement ca argument, si o returneaza.
createElement creaza elementele in DOM cu datele din
elm_type (definite in obiectul
attrs).
Continutul adaugat in elementul HTML rezultat este textul de la fiecare <comp_test>, datorita urmatorului argument:
this.$slots.default
- Resultat:
Libertatea este Libera
Ca sa am pace, dau pace.
Gandul precede perceptia.
Pace mintii, sanatate trupului.
Un Test simplu in fiecare zi
HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce tip de <input> creaza un camp de text care trebuie sa contina doar numere?
type="text" type="number" type="date"<input type="number" name="points" min="5" max="80" />
Ce proprietate CSS permite modificarea transparentei unui element?
font-style opacity color#id {
filter:alpha(opacity=40); /* for IE */
opacity:0.4;
}
Clic pe functia care formateaza un numar la o anumita lungime de caractere.
toPrecision() exp() toFixed()var num = 12.84567;
alert( num.toPrecision(3) ); // 12.8
Ce functie aranjeaza aleator elementele dintr-un array?
natsort() shuffle() sort()$lang =[10=>"PHP", 20=>"JavaScript", "site"=>"coursesweb.net");
shuffle($lang);
var_export($lang); // array (0=>"coursesweb.net", 1=>"PHP", 2=>"JavaScript")
Indicati Superlativul cuvantului "good" (bun).
better best goodestShe is the best in our class.
- Ea este cea mai buna din clasa noastra.
Care este Superlativul cuvantului "bueno" (bun)?
el mejor más bueno muy buenoÉl es el mejor en nuestra clase.
- El este cel mai bun din clasa noastra.