(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': data().getTime(),įvykis:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Stimulus.js: Stimulusus: JS sistemos alternatyva "Rails" programoms - The Codest
The Codest
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Pramonės šakos
    • Fintech ir bankininkystė
    • E-commerce
    • Adtech
    • Sveikatos technologijos
    • Gamyba
    • Logistika
    • Automobiliai
    • IOT
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
  • Apie mus
  • Paslaugos
    • Programinės įrangos kūrimas
      • Priekinės dalies kūrimas
      • Galinės dalies kūrimas
    • Staff Augmentation
      • Priekinės dalies kūrėjai
      • Atgalinės versijos kūrėjai
      • Duomenų inžinieriai
      • Debesų inžinieriai
      • QA inžinieriai
      • Kita
    • Patariamoji tarnyba
      • Auditas ir konsultacijos
  • Vertė už
    • CEO
    • CTO
    • Pristatymo vadybininkas
  • Mūsų komanda
  • Case Studies
  • Sužinokite, kaip
    • Tinklaraštis
    • Susitikimai
    • Interneto seminarai
    • Ištekliai
Karjera Susisiekite su mumis
Atgal rodyklė GRĮŽTI ATGAL
2020-06-11
Programinės įrangos kūrimas

Stimulus.js: JS sistemos alternatyva "Rails" programoms

The Codest

Pawel Muszynski

Software Engineer

Kaip sako jos kūrėjai, "Stimulus" yra kuklių ambicijų JavaScript sistema, kuri nesiekia perimti visos jūsų priekinės dalies, o tik papildo HTML pakankamai elgesio, kad jis spindėtų.

Žinau, ką galvojate... JavaScript sistemą? Jų jau yra tiek daug! Jūs teisūs, bet šis patraukė mano dėmesį, nes jį sukūrė "Basecamp". Tikriausiai žinote šią įmonę, jie yra kūrėjai Ruby on Rails. Jie taip pat sukūrė Turbolinks, paminėjau tai, nes "Stimulus" puikiai dera su juo. Taigi, gal verta išbandyti "Stimulus"?

Kaip tai veikia?

"Stimulus" veikia stebėdama puslapį, laukdama, kol duomenų valdiklis rodomas atributas. Adresas duomenų valdiklis reikšmė sujungia ir atjungia "Stimulus" valdiklius. Prielaida paprasta: kaip ir klasė jungia HTML ir CSS, duomenų valdiklis yra tiltas iš HTML į JavaScript. Stimulus taip pat prideda duomenų veiksmas atributas, kuriame aprašoma, kaip puslapio įvykiai turėtų sukelti valdiklio metodus, ir atributas duomenys-tikslas atributas, kuris suteikia galimybę surasti elementus valdiklio srityje.

Lengvas montavimas

Jei jūsų Bėgiai programa naudoja Webpacker brangakmenį, galite įdiegti Stimulus viena paprasta komanda, nes Webpacker brangakmenyje numatyta Stimulus diegimo užduotis. Tiesiog paleiskite šią komandą Rails šakniniame kataloge:

rails webpacker:install:stimulus
Tai skatina package.json ir sukuria šiuos du failus: app/javascript/controllers/index.js:

importuoti { Application } iš "stimulus"
importas { definitionsFromContext } iš "stimulus/webpack-helpers"

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

Matote, kad iškviečiama "Webpack" pagalbinė funkcija require.context. Tada gautas kontekstas perduodamas Application#load metodui. Tai reiškia, kad mūsų programa ieško failų, pavadintų[identifikatorius]_controller.js į app/javascript/controllers/ kataloge, kur identifikatorius atitinka valdiklio duomenų valdiklio identifikatorių jūsų HTML. Būtent į šią vietą turėtume įdėti "Stimulus" valdiklius.
Programėlė/javascript/controllers/hello_controller.js taip pat sukuriamas. Tai tik pavyzdinis valdiklis, su kuriuo galime žaisti.

Pagrindinis naudojimas

Gerai, taigi turime hello_controller.js failą, sukurtą taip kodas:

importas { Controller } iš "stimulus"

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

Tačiau, kaip žinote, nepamatysime jokio poveikio, jei nesusijungsime HTML ir JavaScript. Pridėkime šiek tiek kodo į savo HTML rodinį. Jį galite įdėti, kada tik norite:

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

Ir žinote ką? Tai viskas! Jei perkraunate puslapį ir jame matote užrašą “Hello, Stimulus!”, tai reiškia, kad ryšys veikia tinkamai. Paprasta, tiesa?
Gerai, bet tai tik paprasto teksto rodymas. Ar galime atlikti kokį nors veiksmą? Taip, galime! Kaip minėjau anksčiau, taip pat yra duomenų veiksmas atributas. Tada pakeiskime HTML rodinį:

<div data-controller="hello">
<p><input type="number" data-target="hello.days"><br><button data-action="click->hello#calculate">Apskaičiuokite</button></p>
</div>

Ir skatinamasis valdiklis app/javascript/controllers/hello_controller.js:

importas { Controller } iš "stimulus"

export default class extends Controller {
static targets = ["output", "days"]
connect() {
this.outputTarget.textContent = 'Kiek laiko esate karantine?
}
calculate() {
const element = this.daysTarget
const days = element.value
const lockdownDays = 14
let daysLeft = lockdownDays - days

if (daysLeft < 1) {
  alert('Jūs esate laisvas!')
}
else {
  alert(`Amount of days you need to stay in quarantine: ${daysLeft}`)
}

}
}

Čia turime labai paprastą programėlę, kuri apskaičiuoja, kiek laiko turime būti karantine. Tai pavyko padaryti naudojant HTML atributą data-action.
Matote, kad į JavaScript kodo tikslų sąrašą taip pat įtraukėme “dienas”. Kai tai padarome, "Stimulus" automatiškai sukuria this.daysTarget savybė, kuri grąžina pirmąjį atitinkamą tikslinį elementą.

Ką dar reikia žinoti?

Atgaliniai skambučiai

Tikriausiai pastebėjote, kad yra prisijungti() metodą abiejuose pavyzdžiuose. Šis metodas skirtas integruotoms grįžtamosioms iškvietoms. Turėtumėte žinoti visas jas ir jų gyvavimo ciklą, todėl čia jos pateikiamos:
inicializuoti: vieną kartą, kai valdiklis instancuojamas pirmą kartą,
prisijungti: bet kada, kai valdiklis prijungtas prie DOM,
atjungti: bet kada, kai valdiklis atjungiamas nuo DOM.

Veiksmų deskriptorius

Svetainė duomenų veiksmas vertė spustelėkite->hello#apskaičiuoti vadinamas veiksmo deskriptoriumi. Šis deskriptorius nurodo, kad:

  • spustelėkite yra įvykio pavadinimas,
  • Sveiki yra valdiklio identifikatorius,
  • apskaičiuoti yra metodo pavadinimas.

Tikslai

Kaip ir veiksmams, "Stimulus" turi tikslinį deskriptorių. . hello.days deskriptorius sako, kad: Sveiki yra valdiklio identifikatorius,
dienos yra tikslo pavadinimas.

Ankstesniame pavyzdyje minėjau, kad "Stimulus" sukuria this.daysTarget savybė, kai tikslų sąraše yra “days”. Taip pat reikia žinoti, kad galima sukurti daugiau savybių. Atsižvelgiant į pavyzdį, galite turėti:

this.daysTarget kuris įvertinamas iki pirmojo valdiklio srities tikslo. Jei taikinio nėra, savybė žymi klaidą,
this.daysTargets įvertina iki visų valdiklio srityje esančių šaltinio tikslų masyvo,
this.hasDaysTarget grąžina true, jei yra tikslas, arba false, jei jo nėra.

Kaip matote, "Stimulus" yra paprastas ir gali būti lengvai pridedamas prie jūsų programos. Ji tampa vis populiaresnė RoR bendruomenė ir aš nesu nustebęs. Kaip Ruby kūrėjas man pačiam labai patinka dirbti su "Stimulus". Taigi, kaip dėl to, kad jį išbandyti?

Skaityti daugiau:

  • Interneto programų kūrimas: Kodėl verta rinktis Ruby on Rails technologiją?
  • Laikas naujai tikrovei. Prieš mėnesį prasidėjo nuotolinio darbo era
  • 5 priežastys, kodėl Lenkijoje rasite kvalifikuotų "Ruby" programuotojų

Susiję straipsniai

Išmaniojo telefono sveikatos priežiūros programėlės su širdies piktograma ir kylančia sveikatos diagrama, pažymėtos The Codest logotipu, iliustracija, vaizduojanti skaitmeninės sveikatos ir sveikatos technologijų sprendimus.
Programinės įrangos kūrimas

Sveikatos priežiūros programinė įranga: Sveikatos priežiūros paslaugos: tipai, naudojimo atvejai

Įrankiai, kuriais šiandien naudojasi sveikatos priežiūros organizacijos, nė iš tolo neprimena prieš kelis dešimtmečius naudotų popierinių kortelių. sveikatos priežiūros programinė įranga dabar padeda sveikatos sistemoms, pacientų priežiūrai ir šiuolaikiniam sveikatos priežiūros paslaugų teikimui klinikinėse ir...

GERIAUSIAS
Abstrakti mažėjančios stulpelinės diagramos su kylančia rodykle ir auksine moneta, simbolizuojančia ekonomiškumą arba taupymą, iliustracija. Viršutiniame kairiajame viršutiniame kampe pavaizduotas The Codest logotipas ir šūkis "In Code We Trust" šviesiai pilkame fone.
Programinės įrangos kūrimas

Kaip padidinti savo Dev komandą neprarandant produkto kokybės

Didinate savo kūrėjų komandą? Sužinokite, kaip augti neprarandant produkto kokybės. Šiame vadove aptariami ženklai, kad atėjo laikas didinti komandą, komandos struktūra, įdarbinimas, vadovavimas ir įrankiai - ir kaip The Codest gali...

GERIAUSIAS
Programinės įrangos kūrimas

Sukurkite ateičiai atsparias žiniatinklio programas: The Codest ekspertų komandos įžvalgos

Sužinokite, kaip The Codest puikiai kuria keičiamo dydžio interaktyvias žiniatinklio programas, naudodama pažangiausias technologijas ir užtikrindama vientisą naudotojų patirtį visose platformose. Sužinokite, kaip mūsų patirtis skatina skaitmeninę transformaciją ir verslo...

GERIAUSIAS
Programinės įrangos kūrimas

10 geriausių Latvijoje įsikūrusių programinės įrangos kūrimo įmonių

Naujausiame mūsų straipsnyje sužinokite apie geriausias Latvijos programinės įrangos kūrimo įmones ir jų inovatyvius sprendimus. Sužinokite, kaip šie technologijų lyderiai gali padėti pakelti jūsų verslo lygį.

thecodest
Įmonių ir didinimo sprendimai

"Java" programinės įrangos kūrimo pagrindai: A Guide to outsourcing Outsourcing Successfully

Išnagrinėkite šį esminį vadovą, kaip sėkmingai outsourcing "Java" programinę įrangą kurti, kad padidintumėte efektyvumą, įgytumėte patirties ir sėkmingai įgyvendintumėte projektus su The Codest.

thecodest

Prenumeruokite mūsų žinių bazę ir būkite nuolat informuoti apie IT sektoriaus patirtį.

    Apie mus

    The Codest - tarptautinė programinės įrangos kūrimo bendrovė, turinti technologijų centrus Lenkijoje.

    Jungtinė Karalystė - būstinė

    • 303B biuras, 182-184 High Street North E6 2JA
      Londonas, Anglija

    Lenkija - vietiniai technologijų centrai

    • Fabryczna biurų parkas, Aleja
      Pokoju 18, 31-564 Krokuva
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšuva, Lenkija

    The Codest

    • Pagrindinis
    • Apie mus
    • Paslaugos
    • Case Studies
    • Sužinokite, kaip
    • Karjera
    • Žodynas

    Paslaugos

    • Patariamoji tarnyba
    • Programinės įrangos kūrimas
    • Galinės dalies kūrimas
    • Priekinės dalies kūrimas
    • Staff Augmentation
    • Atgalinės versijos kūrėjai
    • Debesų inžinieriai
    • Duomenų inžinieriai
    • Kita
    • QA inžinieriai

    Ištekliai

    • Faktai ir mitai apie bendradarbiavimą su išoriniu programinės įrangos kūrimo partneriu
    • Iš JAV į Europą: Kodėl Amerikos startuoliai nusprendžia persikelti į Europą?
    • Technikos plėtros centrų užsienyje palyginimas: Tech Offshore Europa (Lenkija), ASEAN (Filipinai), Eurazija (Turkija)
    • Kokie yra svarbiausi CTO ir CIO iššūkiai?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Autorinės teisės © 2026 The Codest. Visos teisės saugomos.

    lt_LTLithuanian
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian is_ISIcelandic lt_LTLithuanian