mirror of https://github.com/sveltejs/svelte
in spread, distinguish never-updating and always-updating props (#4487)
parent
3a37de364b
commit
d802c3b266
@ -0,0 +1,13 @@
|
||||
<script>
|
||||
export let foo;
|
||||
export let baz;
|
||||
export let qux;
|
||||
export let quux;
|
||||
export let selected;
|
||||
</script>
|
||||
|
||||
<p>foo: {foo}</p>
|
||||
<p>baz: {baz} ({typeof baz})</p>
|
||||
<p>qux: {qux}</p>
|
||||
<p>quux: {quux}</p>
|
||||
<p>selected: {selected}</p>
|
@ -0,0 +1,76 @@
|
||||
export default {
|
||||
props: {
|
||||
list: [{
|
||||
foo: 'lol',
|
||||
baz: 40 + 2,
|
||||
qux: 5,
|
||||
quux: 'core'
|
||||
}, {
|
||||
foo: 'lolzz',
|
||||
baz: 50 + 2,
|
||||
qux: 1,
|
||||
quux: 'quuxx'
|
||||
}],
|
||||
},
|
||||
|
||||
html: `
|
||||
<div>
|
||||
<p>foo: lol</p>
|
||||
<p>baz: 42 (number)</p>
|
||||
<p>qux: 0</p>
|
||||
<p>quux: core</p>
|
||||
<p>selected: true</p>
|
||||
<p>foo: lolzz</p>
|
||||
<p>baz: 52 (number)</p>
|
||||
<p>qux: 0</p>
|
||||
<p>quux: quuxx</p>
|
||||
<p>selected: false</p>
|
||||
</div>
|
||||
`,
|
||||
|
||||
test({ assert, component, target }) {
|
||||
component.list = [{
|
||||
foo: 'lol',
|
||||
baz: 40 + 3,
|
||||
qux: 8,
|
||||
quux: 'heart'
|
||||
}, {
|
||||
foo: 'lolzz',
|
||||
baz: 50 + 3,
|
||||
qux: 8,
|
||||
quux: 'heartxx'
|
||||
}];
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<div>
|
||||
<p>foo: lol</p>
|
||||
<p>baz: 43 (number)</p>
|
||||
<p>qux: 0</p>
|
||||
<p>quux: heart</p>
|
||||
<p>selected: true</p>
|
||||
<p>foo: lolzz</p>
|
||||
<p>baz: 53 (number)</p>
|
||||
<p>qux: 0</p>
|
||||
<p>quux: heartxx</p>
|
||||
<p>selected: false</p>
|
||||
</div>
|
||||
`);
|
||||
|
||||
component.qux = 1;
|
||||
|
||||
assert.htmlEqual(target.innerHTML, `
|
||||
<div>
|
||||
<p>foo: lol</p>
|
||||
<p>baz: 43 (number)</p>
|
||||
<p>qux: 1</p>
|
||||
<p>quux: heart</p>
|
||||
<p>selected: false</p>
|
||||
<p>foo: lolzz</p>
|
||||
<p>baz: 53 (number)</p>
|
||||
<p>qux: 1</p>
|
||||
<p>quux: heartxx</p>
|
||||
<p>selected: true</p>
|
||||
</div>
|
||||
`);
|
||||
}
|
||||
};
|
@ -0,0 +1,12 @@
|
||||
<script>
|
||||
import Widget from './Widget.svelte';
|
||||
|
||||
export let list;
|
||||
export let qux = 0;
|
||||
</script>
|
||||
|
||||
<div>
|
||||
{#each list as item, index (item.foo)}
|
||||
<Widget {...item} qux={qux} selected={qux === index} />
|
||||
{/each}
|
||||
</div>
|
Loading…
Reference in new issue