Как мне добавить / удалить классы CSS из шаблона ref с помощью Vue 3 Composition API и машинописного текста?
Я столкнулся со следующими ошибками машинописного текста для modal.value
:
const modal = ref(null)
возвращает Возможно, объект имеет значение "null".const modal = ref<HTMLDivElement | undefined>()
return Возможно, объект "не определен".
<template>
<button @click="hideModal">Hide</button>
<div class="show" ref="modal"></div>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
export default defineComponent({
...
setup(){
const modal = ref(null)
const hideModal = () => modal.value.classList.remove('show')
return {modal, hideModal}
}
})
</script>
Эти два варианта работают, однако, кто-нибудь может объяснить, является ли этот метод предпочтительным или нет.
Вариант А:
const modal = ref()
const hideModal = () => modal.value.classList.remove('show')
Вариант Б:
const modal = ref({})
const hideModal = () => (modal.value as HTMLDivElement).classList.remove('show')