什么是 Scale.js ?
Scala.js 是一款将 Scala 代码编译为 JavaScript 代码的编译器,该编译器支持全部 Scala 语言特性。借助于 Scala.js,开发者能够使用 Scala 开发从前端到后端的 Web 应用,而且 Scala.js 还带来了在服务器和客户端之间复用代码的可能性。Scala.js 值得关注的特性包括:
- 支持 Scala 语言的所有特性,包括宏 (macros),仅有一些语义的不同;
- 同 JavaScript 代码具有良好的互操作性,如 Scala.js 代码中以类型化或者非类型化方式使用 jQuery 和 HTML5、创建 Scala.js 对象和 JavaScript 代码中调用对象的方法;
- 集成了 Scala 的流行构建工具 sbt ,支持依赖管理和增量编译;
- 能够使用 Scala IDE 进行编码;
- 能够生成一个源代码和生成代码的映射,从而提供了 Scala.js 和 Scala 二者之间平滑过渡的调试经历,在浏览器中单步调试 Scala 代码且且支持源码间的映射;
- 集成了来自谷歌、用于生成紧凑且高性能代码的工具 Closure Compiler ,为产品以生成最小的代码;
- 生成非常高效的 JavaScript 代码, 参考基准测试信息。
Scala.js 已形成了一个良好的生态圈,生态圈内容包括:
- 测试框架: uTest 、 MiniTest 、 Little Spec 、 Nyaya 、 zcheck 等,这些测试框架实现了在 JVM 和 JavaScript 间的交叉编译;
- UI 框架: scalajs-react 、 scala-js-binding 、 scalajs-angular 、 scalajs-angulate 、 Widok 等;
- 序列化库: uPickle 、 Prickle 、 Scala.js Pickling 等;
- **其他:**用于客户 / 服务器端通讯库 autowire 、HTML 模板库 Scalatags 、可视化库 Paths.scala.js 等。
Scala.js 基于 Scala 许可协议发布,代码托管在 GitHub ,当前最新版本是 0.6.2。有关 Scala.js 的 API、使用指导和参考指南,请读者参考官方提供的相关文档。此外,官方还提供了使用教程、开发文档以及在浏览器中查看运行效果的在线工具。
什么是 Scale.js ?相关推荐
- js实现手机端图片双指缩放变大变小插件
对于手机上图片的缩放通常有两种: 一种是屏幕上有一张图片,直接双指缩放,如下图: 还有一种是类似于手机相册一样,一张一张的,点击单张之后,全屏打开,在进行缩放操作,如下图: 接下来,介绍第一种情况的插 ...
- JavaScript模块化开发技术概述
2019独角兽企业重金招聘Python工程师标准>>> 什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应 ...
- WEB入门之十九 UI
视频课:https://edu.csdn.net/course/play/7621 学习内容 jQuery UI核心 jQuery UI交互组件 jQuery UI微件 jQuery效果库 能力目标 ...
- jqueryui 1.8.19引用顺序(及var basePrototype = new base()错误)
在jqueryui1.8.19中,发现它没有使用原来1.8.17里边那个巨大的260K的单个js,而是把各种JS散开放了,有效地防止了JS下载的带宽. 不过放错顺序,会出现各种错误,不一而足,比如标题 ...
- 前端JAVASCRIPT模块化开发
什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等 ...
- 2021移动端图片点击放大,插件swiper使用
方法1 <!DOCTYPE html> <html><head><meta charset="UTF-8"><title> ...
- 手机端点开图片全屏且手指缩放
dom结构 <div class=" informBlock"><img src="'+list[i].url+'" class=" ...
- 移动端单击图片放大缩小
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- vue项目,h5图片放大后,支持手指缩放功能
html: <template><div id="knowledge-base"><div class="knowledge-title&q ...
最新文章
- 多项目管理,研发管理,敏捷开发软件
- 记一次suse linux崩溃
- YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24
- @SuppressWarnings(resource)
- 【网络信息安全】Web 安全
- PS人像修图技巧——高低频磨皮
- 使用Python对比两个excel表格中的重复数据
- 文献阅读——Revisiting Semi-Supervised Learning with Graph Embeddings
- 设计算法判断单链表的全部 n 个字符是否中心对称
- android网速代码,Android获取网速和下载速度
- Unity酱~ 卡通渲染技术分析(一)
- View inflate方法和LayoutInflater inflate方法的区别
- php获取手机号码6,php随机生成姓名,手机号,6位数
- XCPC Team Trainning Round 1 (NCPC2018)
- 有关公司治理的一些收获
- uni-app的学习之路
- 申请上计算机课的申请,诺丁汉大学计算机学院课程申请通道将即将关闭,抓紧上车了...
- [luogu] P4735 最大异或和
- TabLayout 设置指示器宽度问题
- 意图识别各种模型比较