mirror of https://github.com/sveltejs/svelte
parent
d4c790adb4
commit
e28f223e6c
@ -0,0 +1,14 @@
|
|||||||
|
<script>
|
||||||
|
import Square from './Square.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
svg {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<svg viewBox="0 0 100 100">
|
||||||
|
<Square cx={50} cy={50} size={40} style="fill: #ff3e00"/>
|
||||||
|
</svg>
|
@ -0,0 +1,13 @@
|
|||||||
|
<script>
|
||||||
|
export let cx;
|
||||||
|
export let cy;
|
||||||
|
export let size;
|
||||||
|
export let style;
|
||||||
|
|
||||||
|
$: x1 = cx - size / 2;
|
||||||
|
$: y1 = cy - size / 2;
|
||||||
|
$: x2 = x1 + size;
|
||||||
|
$: y2 = y1 + size;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<polygon points="{x1},{y1} {x2},{y1} {x2},{y2} {x1},{y2}" {style}/>
|
@ -0,0 +1,14 @@
|
|||||||
|
<script>
|
||||||
|
import Square from './Square.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
svg {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<svg viewBox="0 0 100 100">
|
||||||
|
<Square cx={50} cy={50} size={40} style="fill: #ff3e00"/>
|
||||||
|
</svg>
|
@ -0,0 +1,15 @@
|
|||||||
|
<svelte:options namespace="svg"/>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export let cx;
|
||||||
|
export let cy;
|
||||||
|
export let size;
|
||||||
|
export let style;
|
||||||
|
|
||||||
|
$: x1 = cx - size / 2;
|
||||||
|
$: y1 = cy - size / 2;
|
||||||
|
$: x2 = x1 + size;
|
||||||
|
$: y2 = y1 + size;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<polygon points="{x1},{y1} {x2},{y1} {x2},{y2} {x1},{y2}" {style}/>
|
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
title: <svelte:options>
|
||||||
|
---
|
||||||
|
|
||||||
|
Lastly, `<svelte:options>` allows you to specify compiler options.
|
||||||
|
|
||||||
|
Here, we have a component inside an `<svg>` element. Unless we tell Svelte otherwise, it will compile `Square.svelte` to a module that generates HTML nodes instead of SVG nodes. We can correct that by adding this to the top of `Square.svelte`:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<svelte:options namespace="svg"/>
|
||||||
|
```
|
||||||
|
|
||||||
|
The options that can be set here are:
|
||||||
|
|
||||||
|
* `immutable={true}` — you never use mutable data, so the compiler can do simple referential equality checks to determine if values have changed
|
||||||
|
* `immutable={false}` — the default. Svelte will be more conservative about whether or not mutable objects have changed
|
||||||
|
* `namespace="..."` — the namespace where this component will be used, most commonly `"svg"`
|
||||||
|
* `tag="..."` — the name to use when compiling this component as a custom element
|
||||||
|
|
||||||
|
Consult the [API reference](docs) for more information on these options.
|
@ -0,0 +1,13 @@
|
|||||||
|
<script>
|
||||||
|
let user = {
|
||||||
|
firstname: 'Ada',
|
||||||
|
lastname: 'Lovelace'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<input bind:value={user.firstname}>
|
||||||
|
<input bind:value={user.lastname}>
|
||||||
|
|
||||||
|
{(console.log(user), '')}
|
||||||
|
|
||||||
|
<h1>Hello {user.firstname}!</h1>
|
@ -0,0 +1,13 @@
|
|||||||
|
<script>
|
||||||
|
let user = {
|
||||||
|
firstname: 'Ada',
|
||||||
|
lastname: 'Lovelace'
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<input bind:value={user.firstname}>
|
||||||
|
<input bind:value={user.lastname}>
|
||||||
|
|
||||||
|
{@debug user}
|
||||||
|
|
||||||
|
<h1>Hello {user.firstname}!</h1>
|
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: The @debug tag
|
||||||
|
---
|
||||||
|
|
||||||
|
Occasionally it's useful to inspect a piece of data as it flows through your app.
|
||||||
|
|
||||||
|
One approach is to use `console.log(...)` inside your markup. If you want to pause execution, though, you can use the `{@debug ...}` tag with a comma-separated list of values you want to inspect:
|
||||||
|
|
||||||
|
```html
|
||||||
|
{@debug user}
|
||||||
|
|
||||||
|
<h1>Hello {user.firstname}!</h1>
|
||||||
|
```
|
||||||
|
|
||||||
|
If you now open your devtools and start interacting with the `<input>` elements, you'll trigger the debugger as the value of `user` changes.
|
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"title": "Debugging"
|
||||||
|
}
|
Loading…
Reference in new issue