Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 45978e9

Browse files
author
wanli.yu
committed
✨ initial commits
1 parent 2b689bb commit 45978e9

File tree

14 files changed

+3998
-0
lines changed

14 files changed

+3998
-0
lines changed

_book/chapter1/component-format.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# 在开始之前:
2+
3+
注意:此文档目前还是半成品。如遇到缺失或有误导的部分敬请谅解,并且勇于在聊天室寻求帮助,这些教程会更加完善。那么,开始学习吧:
4+
5+
以下页面包含详细的API说明文档,主要是给已经初步接触过Svelte的人们提供的资源。
6+
7+
如果你还没有接触过Svelte,你可以在查阅这些资料前先访问这个可交互的教程或者例子。
8+
9+
# 组件格式
10+
11+
组件是Svelte应用的内置区块,是使用HTML的扩展格式的语言写成.svelte文件
12+
13+
一共分为三个区域、script、style和标签(选填)
14+
15+
## script
16+
17+
一个`script`区域含有一个组件实例创建时的运行Javascript代码。
18+
变量申明(或者引入的变量)在组件标签顶部显示申明。
19+
这里有4条规则:
20+
21+
1. export 用来申明组件的属性
22+
23+
Svelte 使用 export 这个关键字标识一个变量申明作为组件的属性prop,这意味着组件的使用者通过属性可以访问它。
24+
25+
赋值分配是响应式的
26+
27+
改变组件的state并触发组件重新渲染,只需要给本地的已申明变量赋值
28+
29+
使用表达式(count += 1)更新count的值和给属性赋值(obj.x = y)是等效的。
30+
31+
因为Svelte的响应式是基于赋值操作的,使用属性方法如 .push 和 .splice 将不会自动触发更新。有关解决此问题的选项,可以参考此教程
32+
33+
3 使用 $ 将表达式设为响应式的
34+
35+
任何顶层的表达式(不包含代码块和函数申明)可以通过一个$符号设置成响应式的。这是js的标签语法。当响应式表达式依赖的值发生变化时,它们会在组件更新前立即执行。
36+
37+
如果一个表达式是一条由完全未申明的变量组成的赋值语句,Svelte会替你插入一个let申明。
38+
39+
4 为Store添加$前缀来访问它们的值
40+
41+
任何时候,对于任意一个Store,你都可以在组件内部为该Store的引用添加$字符前缀来访问它的值。这会导致Svelte申明有前缀的变量,并且会设置一个Store订阅然后再适当的时候会取消这个订阅。
42+
43+
要注意,必须在组件的顶层申明Store,并且不可以包含在if代码块中
44+
45+
本地申明的变量(不代指store的值)不允许还有$前缀
46+
47+
## <script context="module">
48+
49+
一个带有`context="module"`属性的`<script>`标签的模块只会执行一次,而不是每次都生成组件实例。在此模块中申明的Values可以被正常的`<script>`标签访问到(包括组件标签)但是反之则无法这么使用。
50+
51+
你可以从此区块中 导出 这些绑定值,并且他们会成为编译的模块的导出值
52+
53+
你不能 export default 因为默认导出的是组件本身
54+
55+
56+
## <style>
57+
58+
写在`<style>`中的CSS与组件外部是隔离的
59+
60+
这个功能是通过给元素添加带有组件style哈希的class来实现的。eg(svelte-123xyz)
61+
62+
可以通过使用`:global(...)`修饰符将样式作用域全局
63+
64+

0 commit comments

Comments
 (0)