Een bibliotheek laden voordat een component start
Het vierde argument van COMPONENT() is een lijst van afhankelijkheden: URL's van scripts (.js) of stijlen (.css) die de component nodig heeft. jComponent downloadt elke maar één keer, op volgorde, en maakt de component nadat ze zijn geladen, zodat make() erop kan rekenen dat de bibliotheek er is. Zo verpak je een bibliotheek van derden in een component zonder haar te laden op pagina's die haar niet gebruiken.
window.starslib = {
render: function(count) {
var html = '';
for (var i = 0; i < count; i++)
html += '<span class="star">*</span>';
return html;
}
};<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jComponent</title>
<link rel="stylesheet" href="//cdn.componentator.com/spa.min@20.css" />
<script src="//cdn.componentator.com/spa.min@20.js"></script>
</head>
<body>
<ui-component name="stars" config="count:3"></ui-component>
<script>
COMPONENT('stars', 'count:5', function(self, config) {
self.make = function() {
// starslib.js was loaded before make()
self.html(window.starslib.render(config.count));
};
}, ['/js/starslib.js']);
</script>
</body>
</html> Probeer het in je browser
Bewerk het voorbeeld en voer het uit. Het draait in een geïsoleerd frame in je browser; er wordt niets naar onze server gestuurd.
Voorbeeld