window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Stimulus.js: Rails Apps - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2020-05-13
Ανάπτυξη λογισμικού

Stimulus.js: JS Framework για εφαρμογές Rails

The Codest

Pawel Muszynski

Software Engineer

Όπως λένε οι δημιουργοί του, το Stimulus είναι ένα πλαίσιο JavaScript με μετριοπαθείς φιλοδοξίες, το οποίο δεν επιδιώκει να κατακτήσει ολόκληρο το frontend σας, αλλά να ενισχύσει την HTML με αρκετή συμπεριφορά για να την κάνει να λάμψει.

Ξέρω τι σκέφτεστε.... JavaScript πλαίσιο; Υπάρχουν ήδη τόσα πολλά από αυτά! Έχετε δίκιο, αλλά αυτό τράβηξε την προσοχή μου καθώς δημιουργήθηκε από τον Basecamp. Πιθανώς γνωρίζετε αυτή την εταιρεία, είναι οι δημιουργοί του Ruby on Rails. Δημιούργησαν επίσης Turbolinks, και το αναφέρω αυτό επειδή το Stimulus συνδυάζεται υπέροχα με αυτό. Έτσι, ίσως αξίζει να δοκιμάσετε το Stimulus;

Πώς λειτουργεί;

Το Stimulus λειτουργεί με την παρακολούθηση της σελίδας, περιμένοντας την data-controller χαρακτηριστικό για να εμφανιστεί. Το data-controller Η τιμή συνδέει και αποσυνδέει τους ελεγκτές Stimulus. Η υπόθεση είναι απλή: όπως η κλάση είναι μια σύνδεση μεταξύ HTML και CSS, data-controller είναι μια γέφυρα από την HTML στο JavaScript. Το Stimulus προσθέτει επίσης το data-action attribute, το οποίο περιγράφει πώς τα συμβάντα στη σελίδα θα πρέπει να ενεργοποιούν τις μεθόδους του ελεγκτή, και το data-target χαρακτηριστικό, το οποίο σας δίνει μια λαβή για την εύρεση στοιχείων στην εμβέλεια του ελεγκτή.

Εύκολη εγκατάσταση

Αν η εφαρμογή Rails χρησιμοποιεί ένα webpacker gem, μπορείτε να εγκαταστήσετε το Stimulus με μια απλή εντολή, καθώς το webpacker gem παρέχει μια εργασία για την εγκατάσταση του Stimulus. Απλά εκτελέστε την ακόλουθη εντολή στον ριζικό κατάλογο του Rails σας:

rails webpacker:install:stimulus
Αυτό προσθέτει τόνωση στην package.json και δημιουργεί τα ακόλουθα δύο αρχεία: app/javascript/controllers/index.js:

import { Application } from "stimulus"
import { definitionsFromContext } from "stimulus/webpack-helpers"

const application = Application.start()
const context = require.context("controllers", true, /_controller.js$/)
application.load(definitionsFromContext(context))

Μπορείτε να δείτε ότι καλείται ο βοηθός require.context του webpack. Στη συνέχεια, περνάει το προκύπτον πλαίσιο στη μέθοδο Application#load. Αυτό σημαίνει ότι η εφαρμογή μας αναζητά αρχεία με όνομα[identifier]_controller.js στο app/javascript/controllers/ όπου το αναγνωριστικό αντιστοιχεί στο αναγνωριστικό του ελεγκτή δεδομένων-ελεγκτή στην HTML σας. Αυτό είναι ακριβώς το μέρος όπου θα πρέπει να τοποθετήσουμε τους ελεγκτές Stimulus.
Η εφαρμογή/javascript/controllers/hello_controller.js παράγεται επίσης. Αυτό είναι απλώς ένα παράδειγμα ελεγκτή με το οποίο μπορούμε να παίξουμε.

Βασική χρήση

Εντάξει, λοιπόν, έχουμε το hello_controller.js αρχείο που δημιουργήθηκε με τα ακόλουθα κωδικός:

import { Controller } from "stimulus"

export default class extends Controller {
static targets = ["output"]
connect() {
this.outputTarget.textContent = 'Hello, Stimulus!'
}
}

Αλλά, όπως γνωρίζετε, δεν θα δούμε κανένα αποτέλεσμα αν δεν κάνουμε τη σύνδεση μεταξύ της HTML και του JavaScript. Ας προσθέσουμε λίγο κώδικα στην προβολή HTML. Μπορείτε να τον τοποθετήσετε όποτε θέλετε:

<div data-controller="hello">
<p data-target="hello.output">&nbsp;</p>
</div>

Και ξέρετε κάτι; Αυτό είναι όλο! Αν ξαναφορτώσετε τη σελίδα σας και δείτε το "Hello, Stimulus!" στη σελίδα σας, αυτό σημαίνει ότι η σύνδεση λειτουργεί σωστά. Απλό, σωστά;
Εντάξει, αλλά αυτό είναι μια απλή οθόνη κειμένου. Μπορούμε να έχουμε λίγη δράση; Ναι, μπορούμε! Όπως ανέφερα προηγουμένως, υπάρχει επίσης το data-action χαρακτηριστικό. Ας αλλάξουμε στη συνέχεια την προβολή HTML:

<div data-controller="hello">
<p><input type="number" data-target="hello.days"><br><button data-action="click->hello#calculate">Υπολογίστε το</button></p>
</div>

Και ο ελεγκτής Stimulus app/javascript/controllers/hello_controller.js:

import { Controller } from "stimulus"

export default class extends Controller {
static targets = ["output", "days"]
connect() {
this.outputTarget.textContent = "Πόσο καιρό βρίσκεστε σε καραντίνα;
}
calculate() {
const element = this.daysTarget
const days = element.value
const lockdownDays = 14
let daysLeft = lockdownDays - days

if (daysLeft < 1) {
  alert('Είστε ελεύθεροι!')
}
else {
  alert(`Ποσό ημερών πρέπει να παραμείνετε σε καραντίνα: ${daysLeft}`)
}

}
}

Εδώ έχουμε μια πολύ απλή εφαρμογή που υπολογίζει πόσο καιρό πρέπει να παραμείνουμε σε καραντίνα. Καταφέραμε να το κάνουμε αυτό χρησιμοποιώντας το χαρακτηριστικό data-action στην HTML.
Μπορείτε να δείτε ότι προσθέσαμε επίσης τις "ημέρες" στον κατάλογο των στόχων στον κώδικα JavaScript. Όταν το κάνουμε αυτό, το Stimulus δημιουργεί αυτόματα ένα this.daysTarget η οποία επιστρέφει το πρώτο στοιχείο-στόχο που ταιριάζει.

Τι άλλο πρέπει να ξέρετε;

Callbacks

Πιθανόν να παρατηρήσατε ότι υπάρχει ένα connect() και στα δύο παραδείγματα. Αυτή είναι για ενσωματωμένες ανακλήσεις. Θα πρέπει να τα γνωρίζετε όλα και τον κύκλο ζωής τους, οπότε εδώ είναι:
αρχικοποίηση: μία φορά, κατά την πρώτη ενσάρκωση του ελεγκτή,
συνδεθείτε: κάθε φορά που ο ελεγκτής είναι συνδεδεμένος στο DOM,
αποσύνδεση: κάθε φορά που ο ελεγκτής αποσυνδέεται από το DOM.

Περιγραφικός κωδικός δράσης

Το data-action αξία click->hello#calculate ονομάζεται περιγραφέας δράσης. Αυτή η περιγραφή λέει ότι:

  • κάντε κλικ στο είναι το όνομα του συμβάντος,
  • Γεια σας είναι το αναγνωριστικό του ελεγκτή,
  • υπολογίστε το είναι το όνομα της μεθόδου.

Στόχοι

Ακριβώς όπως και για τις ενέργειες, το Stimulus έχει έναν περιγραφικό στόχο. Το hello.days ο περιγραφέας λέει ότι: Γεια σας είναι το αναγνωριστικό του ελεγκτή,
ημέρες είναι το όνομα του στόχου.

Στο προηγούμενο παράδειγμα, ανέφερα ότι το Stimulus δημιουργεί το this.daysTarget ιδιότητα όταν υπάρχει η ένδειξη "days" στη λίστα των στόχων. Πρέπει επίσης να γνωρίζετε ότι μπορούν να δημιουργηθούν περισσότερες ιδιότητες. Σε σχέση με το παράδειγμα, μπορείτε να έχετε:

this.daysTarget η οποία αξιολογεί μέχρι τον πρώτο στόχο στην εμβέλεια του ελεγκτή. Εάν δεν υπάρχει στόχος, η ιδιότητα επισημαίνει ένα σφάλμα,
this.daysTargets αξιολογεί μέχρι έναν πίνακα όλων των πηγαίων στόχων στην εμβέλεια του ελεγκτή,
this.hasDaysTarget επιστρέφει true αν υπάρχει στόχος ή false αν δεν υπάρχει.

Όπως μπορείτε να δείτε, το Stimulus είναι απλό και μπορεί εύκολα να προστεθεί στην εφαρμογή σας. Κερδίζει κάποια δημοτικότητα στην κοινότητα RoR και δεν εκπλήσσομαι. Ως προγραμματιστής Ruby ο ίδιος, μου αρέσει πραγματικά να δουλεύω με το Stimulus. Τι θα λέγατε λοιπόν να το δοκιμάσετε;

Διαβάστε περισσότερα:

  • Ανάπτυξη εφαρμογών ιστού: Γιατί αξίζει να επιλέξετε την τεχνολογία Ruby on Rails;
  • Ώρα για μια νέα πραγματικότητα. Η εποχή της εξ αποστάσεως εργασίας ξεκίνησε πριν από ένα μήνα
  • 5 λόγοι για τους οποίους θα βρείτε εξειδικευμένους προγραμματιστές Ruby στην Πολωνία

Σχετικά άρθρα

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

Ανακαλύψτε πώς η The Codest υπερέχει στη δημιουργία κλιμακούμενων, διαδραστικών εφαρμογών ιστού με τεχνολογίες αιχμής, παρέχοντας απρόσκοπτη εμπειρία χρήστη σε όλες τις πλατφόρμες. Μάθετε πώς η τεχνογνωσία μας οδηγεί στον ψηφιακό μετασχηματισμό και την επιχειρηματική...

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

Μάθετε για τις κορυφαίες εταιρείες ανάπτυξης λογισμικού της Λετονίας και τις καινοτόμες λύσεις τους στο τελευταίο μας άρθρο. Ανακαλύψτε πώς αυτοί οι τεχνολογικοί ηγέτες μπορούν να βοηθήσουν στην ανύψωση της επιχείρησής σας.

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

Η έξαρση της outsourcing στην Πολωνία οφείλεται στις οικονομικές, εκπαιδευτικές και τεχνολογικές εξελίξεις, που ευνοούν την ανάπτυξη της πληροφορικής και το φιλικό προς τις επιχειρήσεις κλίμα.

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

Οι έλεγχοι ΤΠ διασφαλίζουν ασφαλή, αποτελεσματικά και συμβατά συστήματα. Μάθετε περισσότερα για τη σημασία τους διαβάζοντας ολόκληρο το άρθρο.

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

Εγγραφείτε στη βάση γνώσεών μας και μείνετε ενήμεροι για την τεχνογνωσία από τον τομέα της πληροφορικής.

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek