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
Care tag e folosit pentru a adauga liste cu definitii in element <dl>?
<dt> <dd> <li><dl>
<dt>HTML</dt>
<dd> - Hyper Text Markup Language</dd>
<dd> - Limbaj de cod pentru pagini web</dd>
</dl>
Care proprietate CSS poate sa ascunda un element in pagina, lasand spatiu gol in locul lui?
display position visibility#id {
visibility: hidden;
}
Indicati evenimentul declansat cand se apasa clic pe un obiect in pagina.
onclick onmouseover onfocus document.getElementById("id").onclick = function(){
alert("http://www.MarPlo.net/");
}
Indicati variabila PHP ce contine datele din $_GET, $_POST si $_COOKIE.
$_SESSION $_GET $_REQUESTif(isset($_REQUEST["id"])) {
echo $_REQUEST["id"];
}
Care din urmatoarele cuvinte reprezinta un Verb?
lighting believe pathI believe in my path.
- Eu cred in calea mea.
Care din urmatoarele cuvinte reprezinta un Verb?
creer camino iluminaciĆ³ncreer = a crede; camino = cale /drum; iluminaciĆ³n = iluminare