Есть ли причина не использовать <script setup> в vue3?

https://vuejs.org/guide/extras/composition-api-faq.html Я читаю о различиях между составным API и устаревшими опциями API с vue 3. Я был сбит с толку тем, когда я должен использовать функцию настройки и параметр реквизита над настройка скрипта и defineProps. Из того, что я прочитал в FAQ, " Да. Вы можете использовать Composition API через опцию setup() в компоненте Options API.

Однако мы рекомендуем делать это только в том случае, если у вас есть существующая кодовая база API параметров, которую необходимо интегрировать с новыми функциями/внешними библиотеками, написанными с помощью API композиции. "

Итак, чтобы быть педантичным и спрашивать о правильности, используется ли функция настройки с использованием параметров API? Если бы вы начали новый проект vue 3, вы бы использовали <script setup> в каждом компоненте? Есть ли причина не использовать <script setup>?

До сих пор я использовал функцию настройки с параметрами реквизита, и я думаю, что код выглядит хорошо и читабельно, но я думаю, что это неправильный способ действий. Сделать все <script setup> и убрать функцию настройки?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
340
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать script setup или setup() внутри Options API.
Кто-то предпочитает Options API, остальным нравится CAPI.

Это просто предпочтение, которое позволяет людям по-прежнему использовать API параметров, поскольку он более доступен и прост для понимания (особенно для новичков).

CAPI больше нацелен на продвинутых пользователей или разработчиков React hooks.

Ответ принят как подходящий

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

API опций не идентичен блоку script. API параметров означает параметры компонента, которые были заменены API композиции, а именно data, methods, computed, watch, mixins.

Если бы вы начали новый проект vue 3, вы бы использовали его в каждом компоненте? Есть ли когда-нибудь причина не использовать ?

Это субъективно, но есть причины избегать этого.

script setup является DSL и не соответствует спецификации JavaScript. Он непрозрачен и недостаточно документирован, значительное количество проблем, связанных с этим синтаксисом, происходит из-за того, что разработчики не полностью понимают, что делает код, это можно подтвердить только путем отладки скомпилированного кода JavaScript. Это усугубляет аналогичную проблему с template DSL, за исключением того, что последний хорошо документирован и для его существования есть другие причины, помимо того, что он позволяет писать меньше кода.

Синтаксис охватывает наиболее распространенные случаи, но любой экстраординарный случай требует добавления дополнительного блока скрипта или рефакторинга компонента для использования script вместо script setup. Некоторые из этих случаев невозможно предсказать во время принятия решения о синтаксисе компонента. Это приводит к несоответствиям и дополнительному обслуживанию.

Все еще есть инструменты, которые не полностью поддерживают синтаксис script setup.

Преобразования реактивности Vue — еще один пример синтаксического сахара, который использует макросы $ доллара и т. д. Для краткого кода компонента за счет его ясности и соответствия стандартам ECMAScript.

Не могли бы вы уточнить, что «настройка сценария - это DSL, а не соответствующий спецификации JavaScript». Я не знаю, что такое DSL.

Cameron Fitzpatrick 25.10.2022 18:16

Таким образом, он не обрабатывает все случаи - я видел три, которые вы мне прислали, где вам все равно понадобится обычная <script>... Если вам нужна согласованная и поддерживаемая кодовая база, вы предлагаете использовать скрипт с функцией настройки? лучший маршрут? Я как бы сгорбился таким образом.

Cameron Fitzpatrick 25.10.2022 18:18
en.wikipedia.org/wiki/Domain-specific_language . Это выдуманный язык, напоминающий JS, но работающий по-своему. В JS вы ожидаете, что import MyComp ... не работает и будет встряхиваться деревом, но в настройке скрипта он добавляется к components по волшебству и так далее. Да, я лично рекомендую использовать функцию скрипта, это более безопасная ставка, несмотря на то, что установка скрипта широко рекламируется. установка скрипта может сделать работу на несколько процентов быстрее, но никто не знает, сколько времени вы потеряете, разбираясь с его ограничениями и причудами, и общие знания JS с ними не помогут.
Estus Flask 25.10.2022 18:27

Спасибо, это отличный ответ, и я думаю, что полностью понимаю, что сейчас происходит. Цените помощь.

Cameron Fitzpatrick 25.10.2022 18:56

Другие вопросы по теме