«Эта статья участвовала в деятельности Ордена Созыва Хаовэн,Нажмите, чтобы просмотреть: двойные заявки на вход и сервер, призовой фонд в 20 000 юаней ждет вас, чтобы бросить вызов!"
Я до сих пор помню, что когда я впервые столкнулся с синтаксическим сахаром настройки скрипта, редактор напомнил мне, что это экспериментальное предложение, если вы хотите его использовать, вам нужно исправить версию Vue.
В конце июня предложение было официально доработано.В версии v3.1.3 вы можете продолжать использовать его, но по-прежнему будет подсказка для экспериментального предложения.В v3.2 подсказка будет удалена, а некоторые устаревшие API будут удалены.
Что такое настройка скрипта?
Это новый синтаксический сахар для Vue3, вsetup
в функции. Все экспорты модуля ES считаются значениями, доступными для контекста и включенными в возвращаемый объект setup(). По сравнению с предыдущим методом записи синтаксис после использования становится проще.
Он очень прост в использовании, нужно толькоscript
тег плюсsetup
ключевые слова подойдут. Пример:
<script setup></script>
Авторегистрация компонента
В настройке скрипта импортированные компоненты можно использовать напрямую, без передачиcomponents
Для регистрации, а имя текущего компонента можно не указывать, оно автоматически будет именем основного файла, то есть не нужно писатьname
характеристики. Пример:
<template>
<Child />
</template>
<script setup>
import Child from './Child.vue'
</script>
Если вам нужно определить атрибуты, похожие на имя, вы можете добавить тег сценария уровня и реализовать его внутри.
Использование API ядра компонента
использование реквизита
пройти черезdefineProps
Укажите текущий тип реквизита, чтобы получить объект реквизита контекста. Пример:
<script setup>
import { defineProps } from 'vue'
const props = defineProps({
title: String,
})
</script>
использовать испускает
использоватьdefineEmit
Определите события, содержащиеся в текущем компоненте, и выполните генерацию через возвращенный контекст. Пример:
<script setup>
import { defineEmits } from 'vue'
const emit = defineEmits(['change', 'delete'])
</script>
Получить слоты и атрибуты
в состоянии пройтиuseContext
Получить слоты и атрибуты из контекста. Однако после того, как предложение было официально принято, эта грамматика была упразднена и разделена наuseAttrs
иuseSlots
. Пример:
// 旧
<script setup>
import { useContext } from 'vue'
const { slots, attrs } = useContext()
</script>
// 新
<script setup>
import { useAttrs, useSlots } from 'vue'
const attrs = useAttrs()
const slots = useSlots()
</script>
defineExpose API
При традиционном способе написания мы можем получить доступ к содержимому дочернего компонента через экземпляр ref в родительском компоненте, но в настройке скрипта этот метод использовать нельзя.Настройка эквивалентна замыканию, за исключением внутреннегоtemplate
Шаблон, никто не может получить доступ к внутренним данным и методам.
Если вам нужно предоставить доступ к данным и методам установки извне, вам нужно использовать API defineExpose. Пример:
<script setup>
import { defineExpose } from 'vue'
const a = 1
const b = 2
defineExpose({
a
})
</script>
Свойства и методы не нужно возвращать, используйте их напрямую!
Это может быть одним из самых больших удобств: в предыдущем методе написания определение данных и методов необходимо было вернуть в конце, прежде чем их можно будет использовать в шаблонах. В настройке скрипта определенные свойства и методы не нужно возвращать, и их можно использовать напрямую! Пример:
<template>
<div>
<p>My name is {{name}}</p>
</div>
</template>
<script setup>
import { ref } from 'vue';
const name = ref('Sam')
</script>
напиши в конце
Писать не легко, надеюсь получить от вас "лайк". Если статья вам полезна, вы можете выбрать «Избранное». Если в статье есть ошибки или предложения, прошу прокомментировать и исправить, спасибо. ❤️
Добро пожаловать в другие статьи
- Реальный бой: реализовать компонент сообщения Message с помощью Vue3
- Фактический бой: реализовать компонент изображения с помощью Vue3 и, кстати, поддерживать ленивую загрузку.
- One Piece, что нового в Vue.js 3.0
- В одной статье собраны основные новые функции ES7, ES8, ES9.
- Общие проблемы и решения для технических команд
- Объяснение 10 новых функций, обычно используемых в ES6