术语表
无障碍
(a11y) 是使尽可能多的人能够使用内容的做法,即使人们能力有限。这包括残疾人、使用移动设备的人以及网络连接速度慢的人。应开发内容以尽可能地实现无障碍。
Android SDK
The
Android SDK
是一个软件开发工具包,专为为 Google 的 Android 平台开发的开发人员构建。它包含用于构建、测试和调试 Android 应用程序的工具。
Android Studio
是原生 Android 应用程序开发的官方集成开发环境 (IDE)。
Autoprefixer
是一个工具,它将供应商特定的前缀添加到手写的 Sass/CSS 代码中。这确保您编写的标准化 CSS 规则将应用于所有支持的浏览器。例如,您不必了解各种浏览器使用的每个 flexbox 语法,autoprefixer 允许您只编写 display: flex;
,它会自动插入正确的 CSS。
捆绑
捆绑是将应用程序的依赖项(您编写的代码加上安装的任何 npm 模块)编译/转译成单个文件的过程。
Capacitor
是一个开源跨平台应用程序运行时,允许基于 Web 的应用程序在 iOS、Android、Electron 和 Web 上本地运行。参考这些应用程序为“原生渐进式 Web 应用”,它们代表了超越传统混合应用思维模式的下一个演变。Capacitor 由 Ionic 公司创建并积极开发/支持。
CLI
CLI 或 Command-Line Interface 是一种用于与程序交互的基于文本的界面。Mac 用户的常见命令行应用程序是 Terminal 应用程序,Windows 用户通常使用命令提示符。Ionic 社区经常使用此术语来指代 Ionic 的 CLI。Ionic 的 CLI 可用于多种用途,例如创建应用程序的生产版本、运行开发服务器以及访问
Ionic 商业服务
.
CommonJS
是一个定义 JavaScript API 标准格式的组织。他们已经为 JavaScript 模块和包定义了标准。
Cordova
是一个开源移动应用程序开发框架,它将标准 HTML/CSS/JS 转换为完整的原生应用程序。它提供了一个 JavaScript API 用于访问原生设备功能,例如相机或加速度计。Cordova 包含将 Web 应用打包到 iOS、Android 和 Windows Phone 的必要构建工具。
CORS
(跨域资源共享) 是一种机制,服务器可以使用它来控制客户端访问 Web 资源。查看 CORS 常见问题解答 以了解更多信息。
CSS 变量
您可能熟悉 Sass 中的变量。
CSS 变量
启用相同的功能,但内置于浏览器中。CSS 变量在所有常青浏览器中可用。
装饰器
装饰器是返回函数的表达式。它们允许您获取现有函数,并扩展其行为。使用 TypeScript,您还可以装饰 _类_ 和 _参数_。当您装饰一个 类时,您将包装并扩展其构造函数的行为。换句话说,装饰器将在调用构造函数时添加一些功能,然后返回原始构造函数。当您装饰一个 参数时,您将包装传递给该参数的参数。装饰器将在参数传递给方法时添加功能,然后返回原始参数。
ES5
ES5 指的是 EcmaScript 第 5 版。简单来说,ES5 是如今开发人员最熟悉的 JavaScript 版本。
ES2015/ES6
在此版本的 JavaScript 中引入了一系列新功能,包括类、模块、迭代器和承诺。常青浏览器(Chrome、Safari、Firefox 和 Edge)完全支持 ES6,但要在旧浏览器中使用 ES6 功能,需要使用 Babel 和 TypeScript 等工具将 ES6 代码转译 成 ES5。
ES2016/ES7
此版本的 JavaScript 向该语言添加了一些新功能,包括 Array.includes
和指数运算符。所有常青浏览器(Chrome、Safari、Firefox 和 Edge)完全支持此版本的 JavaScript。
ES2017/ES8
此版本的 JavaScript 是最新的标准。它目前处于最终阶段,即将成为新的官方标准。此规范包括 Async/Await(已在所有常青浏览器中)和共享内存/原子。
Genymotion
Genymotion 是一个第三方 Android 模拟器。它速度极快,非常适合快速在 Android 上测试您的应用程序。查看我们的 资源部分,了解有关 Genymotion 的更多信息。
Git
是一个用于管理代码的分布式版本控制系统。它允许开发团队向同一个项目贡献代码,而不会导致代码冲突。
Gulp
是一个用于运行任务的工具,可用于构建您的应用程序。常见的构建任务包括转译 ES6 到 ES5、将 Sass 转换为 CSS、压缩代码以及连接文件。
ES 模块
将模块的概念原生引入 JavaScript。使用模块,类和变量不再处于全局范围内,必须明确导入到您的项目中才能使用。这使得更容易了解代码的来源,并提高了功能的模块化和分隔。
Ionicons
是由 Ionic 创建和使用的开源图标集。它包含 1:1 iOS 和 Material Design 图标,以及常用的社交/应用程序图标。Ionicons 默认包含在 Ionic 发行版中,但也可以在任何项目中使用。
Karma
是一个测试运行程序,它将在真实的浏览器中运行应用程序的测试。它在真实的浏览器中执行用任何测试框架编写的测试用例。Karma 最初是为与 Angular 1 一起使用而编写的。
模块
JavaScript 中的模块是小型、独立且可重用的代码片段,它们彼此隔离,并与全局范围隔离。
Monorepo
monorepo 是一个包含多个项目的单个 Git 存储库。优点包括更简单的组织、共享工具和依赖项,以及与团队成员的更好的协作。
实时重载
实时重载(或 live-reload)是一种工具,当它检测到应用程序中的更改时,它会自动重新加载浏览器或 Web 视图。在某些情况下,它可以替换应用程序的某些部分,而无需重新加载整个窗口。查看 实时重载文档 以了解更多信息。
Node
是一个运行时环境,允许在服务器端编写 JavaScript。除了用于 Web 服务之外,node 通常用于构建开发人员工具,例如 Ionic CLI。
npm
是 node 的包管理器。它允许开发人员安装、共享和打包 node 模块。Ionic 可以使用 npm 安装,以及它的许多依赖项。
Observable
Observable 是一个发出事件(或通知)的对象。观察者是一个监听这些事件的对象,并在收到事件时执行某些操作。它们一起创建一个可用于异步编程的模式。
包 ID
Apple 将其称为 Bundle ID,Android 将其称为 Application ID, 包 ID 用于识别发布到 App Store/Play 商店的应用程序。它是一个以
反向 DNS 表示法
.
Polyfill
A
polyfill
是一段代码,它为浏览器添加功能,并规范化浏览器差异。这类似于一个 shim,但 shim 有自己的 API,而 polyfill 允许使用浏览器的预期 API。
Protractor
是 Angular 团队为 Angular 团队编写的测试框架。Protractor 可以与 Karma 等测试运行程序一起使用,用于端到端测试。测试运行程序允许您快速且以编程方式验证代码质量。
Sass
Sass 是一种编译成 CSS 的样式表语言,Ionic 使用它。Sass 类似于 CSS,但具有额外的功能,例如
变量
作用域封装
使用作用域封装的组件会在运行时通过在每个样式中添加数据属性来自动设置 CSS 作用域。要覆盖 CSS 中的作用域选择器,需要使用
更高优先级
选择器。作用域组件也可以使用
CSS 自定义属性
.
Shadow DOM
是浏览器原生提供的 DOM 和样式封装解决方案,它可以保护组件不受其周围环境的影响。要从外部为 Shadow DOM 组件的内部元素设置样式,必须使用
CSS 自定义属性
或
CSS 阴影部分
.
Shim
Shim 是用于跨浏览器规范 API 的代码片段。Shim 可以拥有自己的 API,将浏览器特定的实现隐藏起来,对最终用户透明。
Transpiler
Transpilation 是在执行之前将代码从一种语言转换为另一种语言的过程。通常,transpiler 会将高级语言转换为另一种高级语言。在 Ionic 框架中最常见的 transpilation 是将 ES2015/ES6 ( TypeScript) 转换为 ES5 (传统 JavaScript)。
TypeScript
是 JavaScript 的超集,这意味着它提供了 JavaScript 以及一些额外的功能,例如
类型声明
和
接口
。虽然 Ionic 使用 TypeScript 构建,但使用它构建 Ionic 应用程序是完全可选的。
单元测试
单元测试是一种测试代码小片段以查看它们是否按预期工作的方法。单元测试框架包括 Jasmine、Mocha、QUnit 等等。
Webpack
将 JavaScript 模块和其他资源捆绑在一起。它可以用来创建单个或多个“块”,这些块只有在需要时才会加载。Webpack 可以用来将许多文件和依赖项捆绑到一个文件或其他类型中。
Web 标准
The
万维网联盟
(W3C) 是 Web 的标准组织。行业领导者和公众共同制定
Web 标准
,这是一套定义 Web 平台的协议、规范和技术。
Xcode
是 Apple 用于在 Apple 操作系统(macOS、iOS、watchOS 和 tvOS)上进行软件开发的 IDE(集成开发环境),它支持其他语言和平台的扩展。