[note] stimulus
本篇內容擷取自:Stimulus 手冊 - 繁體中文 @ Andyyou
目錄
[TOC]
基本使用
<!-- snippets -->
<div data-controller="hello">
<input data-target="hello.name" type="text" />
<button data-action="click->hello#greet">Greet</button>
</div>
// snippets
// src/controllers/hello_controller.js
import { Controller } from 'stimulus';
export default class extends Controller {
static targets = ['name']; // 將 data-target 的名稱加到定義列表中
// 當 Controller 和 DOM 綁定時會觸發 connect
connect() {
this.element; // 取得被綁定的 DOM 元素
}
// 透過 DOM 上的 data-action="click->hello#greet" 觸發
greet() {
this.nameTarget; // Object, 取得第一個符合的 target
this.nameTargets; // Array, 取得所有符合的 targets
this.hasNameTarget; // Boolean, 檢查是否有符合的 target
}
}
data-controller
:主要用來設定繫結或停止繫結 Stimulus 的 controllers。data-action
:用來設定事件(events),即元素該觸發 controller 裡的哪個方法(action)。data-target
:則是協助我們在 controller 影響的範圍內方便的操作特定元素。