его снаружи:
<Form isShow="$store.state.userTasks.isShowFormTask" >
Property or method "isShow" is not defined on the instance but referenced during render. Ну что он от меня хочет?
если сделать :
@Prop({required: true, type: Boolean, default: false}) isShow?: boolean = false;
то входящее в компонент значение игнорируется, почему?
isShow!: boolean
ну и в шаблоне двоеточие перед пропсом потерялось
и required + default бессмысленно указывать одновременно
<Form isShow=
это хз, я только недавно на классовые компоненты перешел
Сейчас: @Prop({required: true, type: Boolean}) isShow!: boolean; <Form :isShow="$store.state.userTasks.isShowFormTask" > и все та же ошибка
согласен, но выбора не было :(
тоже написать это хотел
по ощущениям есть хоть какой-то профит от них или больше боли?
больше кода, непонятно зачем они вообще нужны на фронте, повышает порог входа для функциональщиков
мне немного нравится этот декоратор, потому что я реально подустал эти компьютеды расписывать, но, как я понял, он в 9 версии добавился, а у меня версия старая и я очень не хочу заниматься апгрейдами 🤡
ну да, звучит резонно
я не пробовал писать компоненты на тсе, но без декораторов, так что не могу сказать, насколько это оправданно, но лично мне этот тс не особо помогает
согласен, меня тоже этот бойлерплейт слегка утомляет, но с composition стало немного легче - геттеры и сеттеры можно писать в одну строку стрелочными функциями, поэтому я подзабил на это но сахар из твоего примера приятный, это да
мое непопулярное и холиварное мнение - тс во вью не нужен, большинство типов можно валидировать средствами Vue, при этом не нужно часами мучиться и воевать с типами, пытаться натянуть их туда, где они не нужны конечно, порой не хватает всяких enum’ов, но это не стоит всей этой головной боли
Сейчас: @Prop({required: true, type: Boolean}) isShow!: boolean; <Form :isShow="$store.state.userTasks.isShowFormTask" > и все та же ошибка
мне очень нравится тс, когда он используется, например, в апи слое, но когда он лезет в компоненты, то реально приносит больше проблем, чем пользы
покажи полностью код и ошибку
так это не холвирное мнение, это истина
мне тоже нравится сам ts и я с удовольствием использую на бэке, там он действительно нужен и это действительно важно но на фронте, на мой взгляд, он не нужен
да и не бэке он не сдался)))
<template> <form class="form" @submit.stop.prevent="onSubmit" v-if="isShow"> <slot/> </form> </template> <script lang="ts"> import {Prop, Vue} from "vue-property-decorator"; export default class Form extends Vue { @Prop({required: true, type: Boolean}) isShow!: boolean; created() { console.log(this.isShow); } onSubmit() { this.$emit('submitHandler'); } } </script> vue.runtime.esm.js?2b0e:619 [Vue warn]: Property or method "isShow" is not defined on the instance but referenced during render
многие засыпят аргументами “ну это же типы! ts избавит от сотни ошибок! даст автокомплит везде (нет)”
ты @Component забыл
я где то год писал на вью и не знал что там вообще можно на тс писать компоненты)
Ну я за типы) За последнюю неделю часа 3 потерял из-за их отсутствия Мне не впадлу пользоваться механизмом предугадывания свойств в зависимости от типа объекта И легче понимать что написано в чужом коде, если он типизирован Если нет тех, кто использует юнион типы на проекте, то это дает хорошую архитектуру кода, в отличие от js
Спасибо, помогло
типы - это прекрасно, безусловно, но конкретно во вью их нельзя завести с полпинка и пользоваться в удовольствие везде, и вот этот весь оверхед, который тебе нужно проделать, чтобы их завести, явно не стоит того мизерного профита, который будет получен в итоге опять же, типы работают в шаблоне примерно никак, что уже ставит под сомнение их использование во вью
Да, то что их нет в шаблонах - это плохо Но есть же vue 3
насколько мне известно, в тройке в этом плане ничего не изменилось, в шаблоне их по-прежнему нет, есть только какое-то расширение для vscode в бете, которое их вроде как завозит, но вроде как они работают непонятно как
я слышал другое, но пака неясно, то судить не о чем
volar, если верить твиттеру, нормально отрабатывает
да, я как раз про него возможно, его уже довели до ума, но раньше он довольно посредственно работал с типами в шаблоне
Обсуждают сегодня