169 похожих чатов

Приветствую! Какие есть минусы/недостатки использования typescript на vue3?

31 ответов

41 просмотр

плюсы: typescript минусы: typescript

такие же, как и при использовании TS без вью

Фәнил-Зарип Автор вопроса

Ну т.е., нет такого, что какие-то вещи плохо поддерживаются и т.д.? Читал доку vue, там про ограничения при использовании пропсов было. Поэтому интересно, усложнит ts процесс разработки или нет

смотря какая версия vue3 последний минор неплохо прокачал еще дальше поддержку TS-а во vue до нее были некоторые сложности

Фәнил Зарип
Ну т.е., нет такого, что какие-то вещи плохо подде...

ограничение есть, да пропсы - это, наверное, единственный неудобный момент на TS, потому что вью зачем-то до сих пор пытается привести интерфейсы к реальным рантайм-конструкторам, что у него получается крайне плохо ну и withDefaults - тоже костыль, с этим нужно просто смириться в остальном никаких проблем нет и все хорошо поддерживается, даже слоты

Denis Chernov
ждешь defineProp?

мне кажется, что вью уже не сможет нормально решить эту проблему, defineProp привнесет только новую - теперь нельзя будет прописать единый интерфейс и удобно его объявить как пропсы, придется делать это по одному нормальное решение было бы отказаться от конвертирования интерфейсов в рантайм-конструкторы, ну и можно еще допилить defineComponent, чтобы возможно было что-то типа export default defineComponent((props: AnyInterface) => { /* setup */ });

Artyom Tuchkov
мне кажется, что вью уже не сможет нормально решит...

мы уже малорвероятно от концепции "компилятора" уйдем

Denis Chernov
мы уже малорвероятно от концепции "компилятора" уй...

именно так, а в script setup с этим никак особо не извернуться, поэтому самое вероятное, что мы придем к деструктуризации пропсов https://github.com/vuejs/rfcs/discussions/502

Artyom Tuchkov
мне кажется, что вью уже не сможет нормально решит...

бтв defineComponent буквально почти так и позволяет сейчас, но да, там другие проблемы

Artyom Tuchkov
мне кажется, что вью уже не сможет нормально решит...

а вариант const propName = defineProp<Props<PropName>>() не подойдет?

Artyom Tuchkov
именно так, а в script setup с этим никак особо не...

вот этот пропосал мне меньше defineProp нравится

Denis Chernov
бтв defineComponent буквально почти так и позволяе...

позволяет, но такой синтаксис обязывает возвращать из setup JSX/рендер-функцию, а не обычный объект

Artyom Tuchkov
именно так, а в script setup с этим никак особо не...

вроде и щас это работает const { code, lang, result } = defineProps<{ code: string; lang: string; result?: string }>() или это не то?

Иван М
так не работает

ну вот я щас попробовал, все работает, без флагов каких-то

doroved
вроде и щас это работает const { code, lang, resul...

сейчас деструктуризация приведет к тому, что ты потеряешь реактивность и, например, в lang у тебя просто будет лежать статичная строка, а не реактивный реф

doroved
ну вот я щас попробовал, все работает, без флагов ...

попробуй поменять снаружи пропс и увидишь, что изменения не отобразятся в дочернем компоненте

Artyom Tuchkov
попробуй поменять снаружи пропс и увидишь, что изм...

да вроде рактивно, либо я не шарю) https://play.vuejs.org/#eNp9UsFOwzAM/ZWQS0Eaq9BuXTcJ0CTgABNM4pJL1bpdRppESVomVf13nHQtE0K7xe/ZzrOfO3qv9bxtgCY0tbnh2hELrtFrJnmtlXGkIwZK0pPSqJpEmBpN1A6sO+Hz2Ae+U7RkkslcSeRqW5GVr7+OnkAIRT6VEcVVdMNkGg/f4UcYOKi1yBxgREi6v1t3XSju+zTGKKBc6saR9rZWBYgVo8gzOlBBSILACJMYiTSe2tIZdRY1lbyaH6ySOG7nKxnNVa25APOmHUfNjCYkMJ7LUPL3S8CcaWA24vke8q9/8IM9eozRrQELpgVGJ85lpgI30JuPVzjieyJxpEZg9gXyHawSjdc4pD00skDZZ3lB7XNwhstqZzdHB9KOQ3mhPrMP+YyiU48XRv+Vu5gvQh2TPW5xdPnvvRCRSb99h21w9YP9Jw/xBAoouYStUdqmAU2IdQZlLrHz+vrSPaQFb0kuMmt9+7AaRLsOm/QoKo2RH4rO7O5/AOCx9Lk=

короч то что ты написал в defineProps пропсы и так известны vue-хе и в рендере ему не нужна вообще приписка props.SMTH

реактивно, но только поэтому https://github.com/vuejs/core/blob/main/packages/sfc-playground/src/App.vue#L37 у них в сэндбоксе всегда включены все эксперименталки

Denis Chernov
короч то что ты написал в defineProps пропсы и так...

Что плохого использовать объект с пропсами в темплейте? Наглядно видно откуда он пришел (если нет props. — переменная компонента)

Nikita Ignatovich
Что плохого использовать объект с пропсами в темпл...

а ты где собсно прочел что я такое написал?

Artyom Tuchkov
реактивно, но только поэтому https://github.com/vu...

странно, в своем коде на пропсы подаю другие значения, оно реактивно в интерфейсе, может это из-за hmr update складывается обманчивое впечатление

doroved
странно, в своем коде на пропсы подаю другие значе...

может у тебя включен экспериментальный propsDestructure в конфиге, иначе оно просто не может работать, т.к. после деструктуризации это сырое статичное значение

Artyom Tuchkov
может у тебя включен экспериментальный propsDestru...

дефолтный конфиг при установки таури, не трогал

Denis Chernov
покажи код которым проверял

да просто в шаблоне меню у пропсов значения и оно реактивно в интерфейсе <CodeBlock code="hello" lang="javascript" result="alert('hello bro')" /> в компоненте CodeBlock const { code, lang, result } = defineProps<{ code: string; lang: string; result?: string }>()

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
20
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
Или имеется ввиду именно что медленнее работа компилятора?
Куся 🌿⃤ __UKS
9
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
let sum = [1, 2, 3].map { String($0) }.flatMap { Int($0) }.reduce(0, +) let sum = [1, 2, 3].map { (num: Int) -> String in String(num) }.flatMap { (str: String) -> Int? in Int...
Yakov
7
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Карта сайта