Stimulus 使用准备

如果说 CSS 是把样式从 HTML 剥离的技术, Stimulus 就是把 JS 从 HTML 剥离的技术, 结合 Turbolinks 一起使用, 开发效率和用户体验都很棒.

CSS 使用 class链接HTML,Stimulus使用data-controller链接HTML。

Stimulus 的代码一般长这样:

<button data-controller="user" data-action="user.action">
Text
</button>

当点击按钮的时候, Stimulus 会自动找到 user_controller.js 文件, 并调用 user_controller.js 中的 action 函数.

Rails的使用案例
https://www.jianshu.com/p/8b5e81216b83

Stimulus 增加了魔法属性data-action,它描述了页面上的事件应该怎样触发控制器里的方法;
魔法属性 data-target,它为你提供了在控制器作用域(controller’s scope)中寻找元素的途径(handle )。

ES6 规范
导出
export default命令:为模块指定默认输出(这样就不需要知道所要加载模块的变量名)

//a.js
let sex = "boy";
export default sex(sex不能加大括号)
//原本直接export sex外部是无法识别的,加上default就可以了.但是一个文件内最多只能有一个export default。
其实此处相当于为sex变量值"boy"起了一个系统默认的变量名default,自然default只能有一个值,所以一个文件内不能有多个export default。
// b.js
本质上,a.js文件的export default输出一个叫做default的变量,然后系统允许你为它取任意名字。所以可以为import的模块起任何变量名,且不需要用大括号包含
import any from "./a.js"
import any12 from "./a.js" 
console.log(any,any12)   // boy,boy

export default class extends Controller {

}

export 和 export default的区别

  1. export与export default均可用于导出常量、函数、文件、模块等
  2. 在一个文件或模块中,export、import可以有多个,export default仅有一个
  3. 通过export方式导出,在导入时要加{ },export default则不需要
  4. export能直接导出变量表达式,export default不行。
  5. 为模块指定默认输出(这样就不需要知道所要加载模块的变量名)

https://segmentfault.com/a/1190000010426778
https://www.jianshu.com/p/edaf43e9384f

导入

import { Controller } form "stimulus"
export default class extends Controller {
  static targets = [ "source" ]

  // ...
}

static targets 这行是什么? 在 Stimulus 加载控制器类时,它会在被称为目标(targets)的静态数组中寻找目标名称字符串。针对数组中的每个目标名称,Stimulus
会为你的控制器添加三个新属性。这里 "source" 这个目标名称就变成了这样三个属性:

  • this.sourceTarget 在控制器作用域内寻找到的第一个来源目标。如果没有找到,访问此属性会抛出一个错误
  • this.sourceTargets 在控制器作用域内寻找到的由所有来源目标组成的数组。
  • this.hasSourceTarget 如果找到了来源目标,返回 true,否则,返回 false。

常见的事件有一个速记符号 你可能已经注意到了我们省略了操作描述符中的 click->。那是因为 Stimulus 将点击事件设置成了操作 <button> 元素的默认事件。

未完成

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 8,996评论 2 27
  • 系列文章导航 模块(一) CommonJs,AMD, CMD, UMD 本文参考阮一峰 ES6入门 Module的...
    合肥黑阅读 11,360评论 0 4
  • 想法总是一出一出的,然后这个点,决定准备备考明年的教师招聘! 理由如下: 1. 这是老妈的夙愿; ...
    木子阅读 1,417评论 0 1
  • 迎春有感 ----2010年2月11日(腊月二十八) 窗外的雨, 淅淅沥沥, 牛年随流水而去, 竞品挤压, 运输紧...
    鲜花爱笑笑阅读 1,313评论 0 6
  • ###四个收获 1、要懂得作者的逻辑、架构、立场,然后站在他的角度来读书,才会提升理解力。 2、文法、逻辑、修辞这...
    Eco糯米阅读 1,787评论 1 0