const uniq = (value, index, array) => !array.includes(value, index + 1);
[1, 2, 2, 3, 3, 3].filter(uniq) // [1, 2, 3]
/** @type {Array<ReturnType<typeof createElement>>} */
и оно заработает. Но никаких долговременных гарантий. @mouseout
или @mouseleave
должны сопровождаться @focusout
или @blur
для доступности. @mouseover
, @mouseenter
или @hover
должны сопровождаться @focusin
или @focus
для доступности. @mouseenter
нам может понадобится @focusin
, если нам это советует правило по доступности? Думай, думай...@focus
и @focusin
? {{Route('ChangeLanguage', N)}}
? /en
и /tr
то у тебя будет открываться собственно та версия, которая сохранена в закладках\истории, а не так которая была выбрана.selectLang.selectedIndex = localStorage.getItem(storageKey);
вызовет change
автоматически - это не так, программная смена не вызывает событий.</div>
в <template>
.v-on: mouseover="out"
должно быть слитно v-on:mouseover="out"
.data
, methоds
висят в воздухе.<styles>
, а <style>
причём судя по вложенности не просто <style>
, который ожидает обычный css, а <style lang="scss">
.out
и select
.<a>
href="#"
или, лучше, v-on:click.prevent
из-за чего клик по ссылке открывает новую вкладку. А ещё лучше - не использовать <a>
не для сссылок.one
- стока, то назначался класс из этой строки, а не класс .one
, в таком случае выглядеть это должно так: v-bind:class="[one, { stels: stels }]"
или, хуже, v-bind:class="{ [one]: one, stels: stels }"
.type
:type BaseColumn = { label: string; props: string }
type Column = { type: 'text' } & BaseColumn
type LinkColumn = { type: 'link'; path: string } & BaseColumn
type TableColumn = Column | LinkColumn
keyof
для юниона объектов показывает только те поля, которые есть в каждом из них. Это логично, т.к. к типу TableColumn
ты не можешь обратиться по полую .link
предварительно не сузив тип. union
- строгий. app.post('/tutorials', (req,res,next) => {
// test1 = req.body; // глобальные серверные переменные тоже использовать точно не надо
console.log(req.body);
})
axios.post('http://localhost:5000/tutorials', this.data.login)
.push
и тебе откроет файл с декларацией, если она не\не только в next/dist/shared/lib/app-router-context.d.ts
- разбирайся откуда взялась левая. v-if="showSwiper"
и переключаете, соответственно, this.showSwiper
. Если v-if="false"
компонент будет разрушен и всё.destroy
, и вам не надо не о чём заботиться. Иногда конечно встречается кривое г-но с текущей памятью, но в таких случях проще самому написать компонент с нуля.