超级简短的 Svelte 框架入门教程,仅需十条推文

Xiaoru "Leo" Li 原做,翻译转载自 New Frontend

总想了解下 [Svelte](web 开发的下一次革命)可是一直没时间?react

01

这份十条推文组成的旋风教程正是为你准备的!web

(剧透警告:Svelte 是如此直观易用,以致于你可能感受这些你都已经知道了!)数组

Svelte 的工做机制:浏览器

  • 编译器:并不会分发一个 Svelte 「库」给用户,而是在构建阶段编译出优化的纯 JS 代码
  • 组件:应用由可组合的 UI 元素组成
  • 响应式:事件/用户交互触发一系列状态改变,自动更新整个应用的组件

编译、响应

02

用户界面是组件树。组件定义了应用应当如何解释一些抽象的「状态」值,以便在浏览器中转换为 DOM 元素,并最终转换为屏幕上的像素。异步

组件树和状态变量

03

每一个 .svelte 文件包含一个组件,由三部分组成:ide

  • <stript> 是 JS 编写的组件逻辑
  • <style> 是 CSS 样式,做用域和应用范围仅限于当前组件
  • Svelte 模板,以 HTML 基础,加上一些定制组件和内嵌逻辑(相似 JSX)

脚本、样式、模板

04

除了 HTML 元素外,Svelte 模板中还可使用自定义组件。在不会引发歧义的状况下,在模板中引入自定义组件时能够省略 .svelte 文件扩展名,可是自定义组件的首字母 必须 大写。函数

花括号中可使用 JS 表达式。优化

Svelte 模板示例

05

「控制」子组件行为的常见作法是将数据做为属性(props)传入。动画

使用 export 暴露属性变量。注意赋值时使用 let 而不是 const,由于 const 没法从新赋值。spa

暴露变量和传入属性

06

用户动做会触发事件。咱们使用 on: 监听事件并运行函数以更新状态。用户界面会随着状态的更新自动更新。

通常来讲数据从上往下流动,但咱们可使用 bind: 开放双向数据流动以简化状态更新逻辑。

on 和 bind 用法示例

07

$: 开头的语句是「响应式语句」。

Svelte 会分析响应式语句依赖的变量。任意依赖变量的值改变时,会从新执行相应的响应式语句。声明衍生状态或触发「反作用」时这个特性十分好用。

响应式语句示例:检测密码强度

08

响应式「store」方便在组件之间共享状态。store 放在单独的 JS 文件里,只需用 writable 封装一个值就能够建立。

在组件中引用(读写)时,store 名称带上 $ 前缀。编译器真奇妙!

store 的声明和使用

09

在 Svelte 模板中,使用 {#if} 能够实现有条件地渲染组件({#if} 有一个可选的 {:else} 分支)。

使用 {#each} 渲染列表中的每一个成员。

别忘了老是使用 {/if}{/each} 收尾。

(下面的例子中其实应该使用 <ol>,我用 <ul> 是为了演示如何访问数组索引)。

if 和 each 示例

10

Svelte 下进行 API 请求之类的异步操做很是容易。

咱们能够直接 {#await} Promise 完成,在结果就绪前显示「加载中」。

注意 {#await} 关键字只适用于模板部分,没法在 <script> 中使用。

{#await}、{:then}、{:catch}

Svelte 自带精美的动画变换效果。试着给你的组件加上 transition:fly 属性!还能够尝试下其余类型的动画效果,好比 fade(淡入淡出) 和 slide(滑动)。你还能使用 in:out: 分别为出现和消失指定不一样的效果。

传入参数能够进一步微调动画效果。

动画效果演示

好了,这就是上手 [Svelte] 前须要了解的全部内容。😁

开发愉快!

(这篇旋风教程的形式借鉴了 Chris Achard 写的 React 超短入门教程)

相关文章
相关标签/搜索