mirror of https://github.com/sveltejs/svelte
parent
57d869d028
commit
a0cedf8d82
@ -0,0 +1,27 @@
|
|||||||
|
<script>
|
||||||
|
import { afterUpdate, onDestroy } from "svelte";
|
||||||
|
|
||||||
|
export let id;
|
||||||
|
export let items;
|
||||||
|
|
||||||
|
let item = $items[id];
|
||||||
|
let selected = true;
|
||||||
|
|
||||||
|
function onClick() {
|
||||||
|
selected = !selected;
|
||||||
|
items.set({});
|
||||||
|
}
|
||||||
|
|
||||||
|
onDestroy(() => {
|
||||||
|
console.log("onDestroy");
|
||||||
|
});
|
||||||
|
|
||||||
|
afterUpdate(() => {
|
||||||
|
console.log("afterUpdate");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<button on:click="{onClick}">Click Me</button>
|
||||||
|
{#if selected}
|
||||||
|
<div>{item.id}</div>
|
||||||
|
{/if}
|
@ -0,0 +1,16 @@
|
|||||||
|
export default {
|
||||||
|
html: `
|
||||||
|
<button>Click Me</button>
|
||||||
|
<div>1</div>
|
||||||
|
`,
|
||||||
|
async test({ assert, target, window }) {
|
||||||
|
const button = target.querySelector('button');
|
||||||
|
const event = new window.MouseEvent('click');
|
||||||
|
const messages = [];
|
||||||
|
const log = console.log;
|
||||||
|
console.log = msg => messages.push(msg);
|
||||||
|
await button.dispatchEvent(event);
|
||||||
|
console.log = log;
|
||||||
|
assert.deepEqual(messages, ['afterUpdate', 'onDestroy']);
|
||||||
|
}
|
||||||
|
};
|
@ -0,0 +1,10 @@
|
|||||||
|
<script>
|
||||||
|
import { writable } from 'svelte/store';
|
||||||
|
import Component from "./Component.svelte";
|
||||||
|
|
||||||
|
let items = writable({ 1: { id: 1 } });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#each Object.values($items) as item (item.id)}
|
||||||
|
<Component id="{item.id}" {items} />
|
||||||
|
{/each}
|
Loading…
Reference in new issue