created
и до mounted
, на mounted
шаблон уже примонтирован в dom
и все переменные давно взял и обработал, а ты их только присваиваешь.computed
. Если переменная не должна обновляться при изменении - фигач в created
. <template>
<child-component :id="$route.params.id"/>
</template>
const div = document.createElement('div');
div.setAttribute(':isLoAding', 'true');
console.log(div.outerHTML) // <div :isloading="true"></div>
return [setRef, isIntersecting] as const;
const arr = [1, 'text', true]
- имеет тип по умолчанию Array<string | number | boolean>
, а значит если мы сделаем так: arr[0] *= 2;
тайпскрипт будет жаловаться на то что arr[0]
не точно number
, а может ещё быть и string
и boolean
. as const
мы даём тайпскрипту знать, что этот массив никогда не будет меняться и по сути является кортежем.const useOnScreen = (option?: IntersectionObserverInit): [Dispatch<SetStateAction<HTMLDivElement | undefined>>, boolean] => {
но это излишне многословно, как по мне.) src
никак не влияет на работу базового хука, те изменения, что внёс чувак, нужны если элементы вырисовываются по условию{condition ? <A ref={ref}/> : <B/>}
) - не твой случай.
hover
в каждомitem
до того как оно попадёт в массивitems
? Потому что реактивность в vue применяется только к уже существующим свойствам.Если вот это ваша попытка добиться такого результата, то это - провал. Во-первых:
hover
тут добавляется конкретно массиву, а не элементам в нём, во-вторых: он добавляется после попадания вdata
, т.е. после применения реактивности, а потому не учитывается vue.tl\dr