(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'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: JS-rammaúrval fyrir Rails-forrit - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2020-06-11
Hugbúnaðarþróun

Stimulus.js: valkostur JavaScript-ramma fyrir Rails-forrit

The Codest

Pawel Muszynski

Software Engineer

Eins og höfundar þess segja, er Stimulus JavaScript rammi með hóflegum metnaði, sem leitast ekki við að taka yfir allan framenda þinn heldur við að bæta HTML með akkúrat nógum eiginleikum til að láta það skína.

Hér er tómt.

Ég veit hvað þú ert að hugsa… Annað JavaScript rammi? Það eru nú þegar svo margir þeirra! Þú hefur rétt fyrir þér, en þessi vakti athygli mína þar sem hann var búinn til af Basecamp. Þú þekkir líklega þetta fyrirtæki, það eru skapendur Ruby on Rails. Þeir bjuggu einnig til Turbolinks, og ég nefni þetta vegna þess að Stimulus passar fallega með því. Svo kannski er það þess virði að prófa Stimulus?

Hvernig virkar það?

Stimulus virkar með því að fylgjast með síðunni og bíða eftir gagnastýril Eiginleiki til að birtast. The gagnastýril gildi tengir og aftengir Stimulus-stýringar. Forsendan er einföld: eins og class er tenging milli HTML og CSS, gagnastýril er brú frá HTML til JavaScript. Stimulus bætir einnig við gagnavirkni eiginleiki sem lýsir hvernig atburðir á síðunni ættu að kalla fram aðferðir stjórnandans, og gagnamiðu Eiginleiki sem gefur þér meðhöndlun til að finna þætti í sviði stjórnandans.

Auðveld uppsetning

Ef þitt Relsar appið notar webpacker-gém, þú getur sett upp Stimulus með einu einföldu skipun þar sem webpacker-gémið býður upp á verkefni til að setja upp Stimulus. Keyrið eftirfarandi skipun í rótarmöppu Rails-verkefnisins:

rails webpacker:install:stimulus
Þetta bætir örvun við package.json og býr til eftirfarandi tvær skrár: 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))

Þú getur séð að hjálparfari require.context í Webpack er kallaður. Hann sendir síðan útkomna samhengi til Application#load-aðferðarinnar. Þetta þýðir að forritið okkar er að leita að skrám sem heita[identifier]_stjórnandi.js í app/javascript/stýritæki/ möppu, þar sem auðkennið samsvarar gagnastýritækjaauðkenni stjórnandans í HTML-inu þínu. Þetta er nákvæmlega staðurinn til að setja Stimulus-stjórnendur.
Forritið/javascript/stýritæki/hæ_til_stýritæki.js er einnig búið til. Þetta er bara dæmiskóði sem við getum leikið okkur með.

Grunnnotkun

Ok, svo við höfum hæ_stýritafl.js Skrá búin til með eftirfarandi kóði:

import { Controller } from "stimulus"

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

En eins og þú veist munum við ekki sjá neinar áhrif ef við tengjum ekki HTML og JavaScript. Bætum við kóða við HTML-yfirblik þitt. Þú getur sett þetta hvar sem er:

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

Og veistu hvað? Það er allt! Ef þú hleður síðuna þína aftur og sérð “Halló, Stimulus!” á síðunni þinni, þá þýðir það að tengingin virkar eðlilega. Einfaldlega, ekki satt?
Ok, en þetta er bara venjulegur textaskjá. Getum við fengið smá aðgerð? Já, það getum við! Eins og ég nefndi áður, er líka gagnavirkni eiginleiki. Breytum þá HTML-sýn okkar:

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

Og Stimulus-stýringin app/javascript/stýritölvur/hæ_til_stýritölva.js:

import { Controller } from "stimulus"

export default class extends Controller {
static targets = ["output", "days"]
connect() {
this.outputTarget.textContent = 'Hversu lengi hefurðu verið í sóttkví?'
}
calculate() {
const element = this.daysTarget
const days = element.value
const lockdownDays = 14
let daysLeft = lockdownDays - days

if (daysLeft < 1) {
  alert('Þú ert laus!'
}
else {
  alert(`Fjöldi daga sem þú þarft að vera í sóttkví: ${daysLeft}`)
}

}
}

Hér er mjög einfalt forrit sem reiknar út hversu lengi við verðum að vera í sóttkví. Við náðum að gera þetta með því að nota data-action-eiginleikann í HTML.
Þú getur séð að við bættum einnig “dögum” við markmiðalista í JavaScript-kóðanum. Þegar við gerum þetta býr Stimulus sjálfkrafa til þetta.dagsmarkmið Eiginleiki sem skilar fyrsta samsvarandi markhnútnum.

Hvað þarf þú annars að vita?

Tilkynningarköll

Þú hefur líklega tekið eftir að það er tengja() aðferð í báðum dæmunum. Þessi er fyrir innbyggðar tilkynningaraðgerðir. Þú ættir að þekkja þær allar og lífsferil þeirra, svo hér eru þær:
upphafarstilla: einu sinni, þegar stýritækið er fyrst stofnað,
tengja: hvenær sem stýritækið er tengt við DOM-ið,
aftengjast: hvenær sem stýringin er aftengd frá DOM.

Aðgerðarlýsing

Þeir gagnavirkni gildi smelltu->hæ#reikna er kallað aðgerðarlýsing. Þessi lýsing segir að:

  • smelltu er nafn viðburðarins,
  • hæ er auðkenni stýritækisins,
  • reikna er nafnið á aðferðinni.

Markmið

Rétt eins og fyrir aðgerðir hefur Stimulus markmiðslýsing. hæ.dagar Lýsingarefnið segir að: hæ er auðkenni stýritækisins,
dagar er marknafnið.

Í fyrri dæminu nefndi ég að Stimulus býr til þetta.dagsmarkmið Eiginleiki þegar “dagar” eru í markalistanum. Þú þarft einnig að vita að hægt er að búa til fleiri eiginleika. Í tengslum við dæmið geturðu haft:

þetta.dagsmarkmið sem metur upp að fyrsta markmiðinu innan gildissviðs stjórnandans. Ef ekkert markmið er, skráir eignin villu,
Þetta.dagsmarkmiðin metur upp í fylki af öllum upprunalegum markmiðum í gildissviði stýritækisins,
Þetta hefur daga markmið Skilar satt ef markmið er til, annars falskt.

Eins og þú sérð er Stimulus einfalt og auðvelt að bæta því við forritið þitt. Það er að öðlast nokkurn vinsældir í Réttur til afturkomu samfélag og ég er ekki hissa. Sem Rúbín þróunaraðili Ég persónulega nýt þess virkilega að vinna með Stimulus. Hvernig væri að prófa það?

Lesa meira:

  • Vefforritþróun: Af hverju er Ruby on Rails tækni sem vert er að velja?
  • Tími er kominn fyrir nýja veruleika. Tímabil fjarvinnu hófst fyrir mánuði síðan.
  • 5 ástæður fyrir því að þú munt finna hæfa Ruby-þróunaraðila í Póllandi

Tengdar greinar

Myndskreyting af heilbrigðisforriti fyrir snjallsíma með hjartatákni og hækkandi heilsufarsgrafík, merkt með The Codest-merkinu, sem táknar stafræna heilsu og HealthTech-lausnir.
Hugbúnaðarþróun

Heilbrigðis-hugbúnaður: gerðir og notkunartilvik

Tólin sem heilbrigðisstofnanir treysta á í dag líta ekkert út eins og pappírsskjöl frá fyrri áratugum. Heilbrigðisforrit styðja nú heilbrigðiskerfi, sjúklingameðferð og nútímalega heilbrigðisþjónustu á klínískum og...

THECODEST
Yfirlitsmynd sem sýnir hnignandi súlurit með uppstrekktri ör og gullmynt sem táknar kostnaðarhagkvæmni eða sparnað. The Codest-merkið birtist í efra vinstra horni með slagorðinu "In Code We Trust" á ljósgráum bakgrunni.
Hugbúnaðarþróun

Hvernig á að stækka þróunarteymið án þess að fórna gæðum vörunnar

Ertu að stækka þróunarteymið þitt? Lærðu hvernig á að vaxa án þess að fórna gæðum vörunnar. Þessi leiðarvísir fjallar um merki um að kominn sé tími til að stækka, uppbyggingu teymisins, ráðningar, forystu og verkfæri—og hvernig teymið getur...

THECODEST
Hugbúnaðarþróun

Búðu til vefumsóknir sem þola framtíðina: innsýn frá sérfræðiteymi The Codest

Uppgötvaðu hvernig The Codest skarar fram úr við að búa til stigstækar, gagnvirkar vefumsóknir með nýjustu tækni, sem bjóða upp á hnökralausa notendaupplifun á öllum kerfum. Lærðu hvernig sérfræðiþekking okkar knýr fram stafræna umbreytingu og viðskipti...

THECODEST
Hugbúnaðarþróun

Topp 10 hugbúnaðarþróunarfyrirtæki í Lettlandi

Kynntu þér fremstu hugbúnaðarþróunarfyrirtæki Lettlands og nýstárlegar lausnir þeirra í nýjustu grein okkar. Uppgötvaðu hvernig þessir tækniforingjar geta hjálpað til við að efla fyrirtækið þitt.

thecodest
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Grunnatriði í Java hugbúnaðarþróun: Leiðarvísir að árangursríkri útvistun

Kannaðu þessa ómissandi leiðbeiningu um árangursríka outsourcing Java hugbúnaðarþróun til að auka skilvirkni, afla aðgangs að sérfræðiþekkingu og tryggja árangur verkefna með The Codest.

thecodest

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    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 lt_LTLithuanian is_ISIcelandic