1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| <script>
| const returnArrayFn = () => [];
|
| export default {
| props: {
| options: {
| type: Array,
| default: returnArrayFn
| },
| slotOptions: {
| type: Array,
| default: returnArrayFn
| },
| slotUpdateHook: {
| type: Function,
| default: () => {}
| }
| },
| // if use functional, there will be memory leaks
| // functional: true,
| render(h) {
| // to detect changes in the $slot children/options we do this hack
| // so we can trigger the parents computed properties and have everything reactive
| // although $slot.default is not
| if (this.slotOptions !== this.$parent.$slots.default) this.slotUpdateHook();
| return h('ul', [
| this.$slots.default,
| this.options
| ]);
| }
| };
| </script>
|
|