Есть SFC компонет:
<template>
<div class="spoiler" :class="open && 'spoiler--open'">
<div class="spoiler__header" @click="toggle">
<slot name="header">{header_default}</slot>
</div>
<div class="spoiler__body" x-show="open">
<slot>{body_default}</slot>
</div>
</div>
</template>
Так же в нём есть секция script:
<script>
return {
init() {
console.log('init')
},
open: true,
toggle() {
this.open = !this.open
},
destroy() {
console.log('DESTROY')
}
}
</script>
для компонента получаю данные через new Function(jsString).
Можно немножко подшаманить и привязать контекст к секции скрипт, получится что то типа:
<script>
console.log('init')
this.open = false
toggle = () => {
this.open = !this.open
}
destroy = () => {
console.log('DESTROY')
}
</script>
как бы уже кода меньше, но хз очевидно ли это...
Хотелось бы что бы было более очевидно, типа так:
<script>
console.log('init')
let open = false
function toggle(){
open = !open
}
function destroy(){
console.log('DESTROY')
}
</script>
Как это можно сделать ? И вообще стоит ли, или в самом первом варианте через return норм?