From a044ed3356b33a8f7743715a496b5ab9d173ecee Mon Sep 17 00:00:00 2001 From: "juncheng.du" Date: Sun, 28 Jul 2019 21:54:23 +0800 Subject: [PATCH 1/2] add run time --- runtime/Client-side component API.md | 111 +++++++++++++++++++++++++++ runtime/Custom element API.md | 2 + runtime/Server-side component API.md | 18 +++++ 3 files changed, 131 insertions(+) create mode 100644 runtime/Client-side component API.md create mode 100644 runtime/Custom element API.md create mode 100644 runtime/Server-side component API.md diff --git a/runtime/Client-side component API.md b/runtime/Client-side component API.md new file mode 100644 index 0000000..fdefd07 --- /dev/null +++ b/runtime/Client-side component API.md @@ -0,0 +1,111 @@ +### Creating a component + +```javascript +const component = new Component(options) +``` + +**客户端组件** ( client-side component )是使用`generate:'dom'` 参数编译的组件(或未指定的generate选项),其是一个JavaScript类。 + +```javascript +import App from './App.svelte'; + +const app = new App({ + target: document.body, + props: { + // assuming App.svelte contains something like + // `export let answer`: + answer: 42 + } +}); +``` + +可以提供以下初始化选项: + +| option | default | description | +| :-------- | :------- | :---------------------------------------------------------- | +| `target` | **none** | 必传。组件挂载的一个`HTMLElement` 对象。 | +| `anchor` | `null` | `target` 的一个子节点,我们的组件将会被插入到该节点的前面。 | +| `props` | `{}` | 要提供给组件的属性对象 | +| `hydrate` | `false` | 见下方 | +| `intro` | `false` | 如果为true,将在初始渲染时转换,而不是等待后续状态更改 | + +`target` 节点中,那些已经存在的子节点,将会保持其原有的位置。 + +`hydrate`选项会让`Svelte `更新现有DOM(通常来自服务器端渲染)而不是创建新元素。它只有在使用`hydratable:true`选项编译组件时才有效。 + +尽管上面提到,`target` 节点中,那些已经存在的子节点,将会保持其原有的位置。但是 `hydratable:true`选项会让所有的子节点都被删除,所以 `anchor` 的选项不能和 `hydrate: true` 一起使用。 + +现存的DOM节点不必匹配上组件,因为 svelted会修复DOM节点。 + +```javascript +import App from './App.svelte'; + +const app = new App({ + target: document.querySelector('#server-rendered-html'), + hydrate: true +}); +``` + + + +### `$set` + +```javascript +component.$set(props) +``` + +显式的在实例上设置 `props`。 在`