mirror of https://github.com/sveltejs/svelte
invalidate $$props and $$restProps only when there are changes (#5123)
parent
fd0b47d0da
commit
d472bd2f5e
@ -0,0 +1,6 @@
|
||||
<script>
|
||||
export let id;
|
||||
export let callback;
|
||||
|
||||
$: $$props, callback(id);
|
||||
</script>
|
@ -0,0 +1,30 @@
|
||||
let callbacks = [];
|
||||
|
||||
export default {
|
||||
props: {
|
||||
callback: (value) => callbacks.push(value),
|
||||
val1: "1",
|
||||
val2: "2",
|
||||
},
|
||||
|
||||
before_test() {
|
||||
callbacks = [];
|
||||
},
|
||||
|
||||
async test({ assert, component, target }) {
|
||||
assert.equal(callbacks.length, 2);
|
||||
assert.equal(JSON.stringify(callbacks), '["1","2"]');
|
||||
|
||||
component.val1 = "3";
|
||||
assert.equal(callbacks.length, 3);
|
||||
assert.equal(JSON.stringify(callbacks), '["1","2","1"]');
|
||||
|
||||
component.val1 = "4";
|
||||
assert.equal(callbacks.length, 4);
|
||||
assert.equal(JSON.stringify(callbacks), '["1","2","1","1"]');
|
||||
|
||||
component.val2 = "5";
|
||||
assert.equal(callbacks.length, 5);
|
||||
assert.equal(JSON.stringify(callbacks), '["1","2","1","1","2"]');
|
||||
},
|
||||
};
|
@ -0,0 +1,8 @@
|
||||
<script>
|
||||
import Comp from './Comp.svelte';
|
||||
export let callback;
|
||||
export let val1, val2;
|
||||
</script>
|
||||
|
||||
<Comp id="1" {callback} value={val1} />
|
||||
<Comp id="2" {callback} value={val2} />
|
Loading…
Reference in new issue