Γράψτε ένα δικό σας jComponent
Ένα συστατικό δηλώνεται με COMPONENT(name, config, declaration). Το δεύτερο όρισμα είναι η προεπιλεγμένη ρύθμιση ως string (key:value;key:value). Η δήλωση παίρνει self (την παρουσία του συστατικού) και config (την αναλυμένη ρύθμιση).
- το
self.makeεκτελείται μία φορά, όταν δημιουργείται το συστατικό. Χτίστε εδώ το DOM. - το
self.setter(value)εκτελείται κάθε φορά που αλλάζει η τιμή τουpathτου συστατικού. - το
self.set(value)γράφει μια νέα τιμή στοpath· τοself.get()τη διαβάζει.
Χρησιμοποιήστε το συστατικό με ένα στοιχείο <ui-component>. Το name επιλέγει τη δήλωση, το path την κατάσταση και το config παρακάμπτει τις προεπιλογές.
<!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="counter" path="cart.count" config="step:2"></ui-component>
<p>Total: <ui-bind path="cart.count" config="text:value"></ui-bind></p>
<script>
COMPONENT('counter', 'step:1', function(self, config) {
self.make = function() {
self.html('<button type="button">Add</button> <b class="value">0</b>');
self.event('click', 'button', function() {
self.set((self.get() || 0) + config.step);
});
};
self.setter = function(value) {
self.find('.value').text(value || 0);
};
});
SET('cart.count', 10);
</script>
</body>
</html>Το ui-bind δίπλα στο συστατικό δείχνει ότι και τα δύο διαβάζουν την ίδια κατάσταση: το πάτημα του κουμπιού αλλάζει τη διαδρομή και ενημερώνεται κάθε στοιχείο που είναι δεμένο σε αυτήν.
Δοκιμάστε το στον browser σας
Επεξεργαστείτε το παράδειγμα και εκτελέστε το. Εκτελείται σε απομονωμένο πλαίσιο στον browser σας· τίποτα δεν στέλνεται στον διακομιστή μας.
Προεπισκόπηση