Функция setup | Vue.js
В этом разделе используется синтаксис однофайловых компонентов в примерах кода
Подразумевается, что уже изучили и разобрались с разделами Введение в Composition API и Основы реактивности. Если нет — прочитайте их сначала.
Аргументы
При использовании функции setup
она будет получать два аргумента:
props
— входные параметрыcontext
— контекст
Разберёмся подробнее с тем, как можно использовать каждый из аргументов.
Входные параметры
В первом аргументе setup
передаются входные параметры props
. Как и следует ожидать в обычном компоненте, props
внутри функции setup
реактивны и будут обновляться при передаче новых значений.
// MyBook.vue export default { props: { title: String }, setup(props) { console.log(props.title) } }
1
2
3
4
5
6
7
8
9
10
ВНИМАНИЕ
Поскольку props
реактивны, то нельзя использовать деструктуризацию ES6, потому что это уберёт реактивность со входных параметров.
Если необходимо выполнить деструктуризацию входных параметров, то это можно сделать с помощью toRefs внутри функции setup
:
// MyBook.vue import { toRefs } from 'vue' setup(props) { const { title } = toRefs(props) console.log(title.value) }
1
2
3
4
5
6
7
8
9
Если, например, title
необязательный входной параметр, то он может отсутствовать в props
. В этом случае toRefs
не создаёт ссылку для title
и вместо него потребуется воспользоваться toRef
:
// MyBook.vue import { toRef } from 'vue' setup(props) { const title = toRef(props, 'title') console.log(title.value) }
1
2
3
4
5
6
7
8
9
Контекст
Второй аргумент, передаваемый в функцию setup
, будет контекст context
. Это обычный объект JavaScript через который предоставляется доступ к другим значениям, полезным внутри setup
:
// MyBook.vue export default { setup(props, context) { // Атрибуты (нереактивный объект, эквивалент $attrs) console.log(context.attrs) // Слоты (нереактивный объект, эквивалент $slots) console.log(context.slots) // Генерация событий (функция, эквивалент $emit) console.log(context.emit) // Объявленные публичные свойства (функция) console.log(context.expose) } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Так как объект context
будет обычным объектом JavaScript (т.е. он нереактивный), то для context
можно спокойно использовать деструктуризацию ES6.
// MyBook.vue export default { setup(props, { attrs, slots, emit, expose }) { ... } }
1
2
3
4
5
6
Свойства attrs
и slots
— объекты с состоянием, которые всегда будут обновляться при обновлении самого компонента. Это значит, что следует избегать деструктуризации для них и всегда ссылаться на свойства как attrs. x
или slots.x
. Обратите внимание также, что в отличие от props
, свойства attrs
и
НЕ РЕАКТИВНЫ. Если необходимо применять побочные эффекты, основанные на изменениях attrs
или slots
, то следует делать это внутри жизненного цикла onBeforeUpdate
.
Роль expose
рассмотрим в ближайшее время.
Доступ к свойствам компонента
При выполнении setup
можно получить доступ только к следующим свойствам:
props
attrs
slots
emit
Другими словами, не получится обратиться к следующим опциям компонента:
data
computed
methods
refs
(ссылки на элементы шаблона)
Использование в шаблонах
Если функция setup
возвращает объект, то его свойства также будут доступны в шаблоне компонента, как и свойства props
, передаваемые в setup
:
<!-- MyBook. vue --> <template> <div>{{ collectionName }}: {{ readersNumber }} {{ book.title }}</div> </template> <script> import { ref, reactive } from 'vue' export default { props: { collectionName: String }, setup(props) { const readersNumber = ref(0) const book = reactive({ title: 'Руководство Vue 3' }) // всё объявленное будет доступно в шаблоне return { readersNumber, book } } } </script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Запомните, возвращаемые из setup
refs при обращениях в шаблоне автоматически неглубоко разворачиваются, поэтому указывать
в шаблоне не требуется.
Использование в render-функциях
Функция setup
может также возвращать render-функцию, которая сможет использовать реактивное состояние, объявленное в той же области видимости:
// MyBook. vue import { h, ref, reactive } from 'vue' export default { setup() { const readersNumber = ref(0) const book = reactive({ title: 'Руководство Vue 3' }) // Обратите внимание, здесь потребуется явно использовать значение ref return () => h('div', [readersNumber.value, book.title]) } }
1
2
3
4
5
6
7
8
9
10
11
12
Возвращение render-функции, не позволяет возвращать что-либо ещё. Внутри компонента это не проблема, но могут быть сложности, если нужно объявить методы этого компонента, которые могут использоваться родительским компонентом через ссылки в шаблоне.
Эту проблему можно решить с помощью вызова expose
, передав в него объект со свойствами, которые должны быть доступны для экземпляра внешнего компонента:
import { h, ref } from 'vue' export default { setup(props, { expose }) { const count = ref(0) const increment = () => ++count.value expose({ increment }) return () => h('div', count.value) } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Теперь метод increment
доступен в родительском компоненте через ссылку в шаблоне.
Использование
this
Внутри setup()
использование this
не будет ссылкой на текущий активный экземпляр. Так как setup()
вызывается до разрешения других опций компонента, то поведение this
внутри setup()
будет несколько отличаться от this
в других опциях. Это может привести к путанице при использовании setup()
совместно с другими Options API.
SFC и синтаксис
<script setup>
— синтаксический сахар, обрабатываемый на этапе компиляции, для использования Composition API в однофайловых компонентах (SFC). Это рекомендуемый синтаксис при использовании однофайловых компонентов и Composition API. Он предлагает ряд преимуществ по сравнению с обычным синтаксисом <script>
:
- Более лаконичный код с меньшим количеством boilerplate-кода
- Возможность объявлять входные параметры и генерируемые события с использованием чистого TypeScript
- Лучшая производительность во время выполнения (шаблон компилируется в render-функцию в той же области видимости, без промежуточной прокси)
- Лучшая производительность IDE при определении типов (меньше работы для языкового сервера по извлечению типов из кода)
Базовый синтаксис
Чтобы использовать синтаксис, добавьте атрибут setup
в секцию <script>
:
<script setup> console. log('привет синтаксис script setup') </script>
1
2
3
Код внутри компилируется как содержимое функции компонента setup()
. Это означает, что в отличие от обычного
, который выполняется только один раз при первом импорте компонента, код внутри <script setup>
будет выполняться каждый раз при создании экземпляра компонента.
Привязки верхнего уровня будут доступны в шаблоне
При использовании <script setup>
любые привязки верхнего уровня (в т.ч. переменные, объявления функций и импорты) объявленные внутри <script setup>
будут доступны напрямую в шаблоне:
<script setup> // переменная const msg = 'Hello!' // функция function log() { console.log(msg) } </script> <template> <div @click="log">{{ msg }}</div> </template>
1
3
4
5
6
7
8
9
10
11
12
13
Импорты объявляются таким же образом. Это означает, что можно напрямую использовать импортированную вспомогательную функцию в выражениях шаблона, без необходимости объявлять её через опцию methods
:
<script setup> import { capitalize } from './helpers' </script> <template> <div>{{ capitalize('hello') }}</div> </template>
1
2
3
4
5
6
7
Реактивность
Реактивное состояние нужно явно создавать с помощью API реактивности. Аналогично значениям, возвращаемым из функции
, ref-ссылки автоматически разворачиваются, когда на них ссылаются в шаблонах:
<script setup> import { ref } from 'vue' const count = ref(0) </script> <template> <button @click="count++">{{ count }}</button> </template>
1
2
3
4
5
6
7
8
9
Использование компонентов
Значения в области видимости <script setup>
также могут быть использованы непосредственно в качестве имён тегов пользовательских компонентов:
<script setup> import MyComponent from '. /MyComponent.vue' </script> <template> <MyComponent /> </template>
1
2
3
4
5
6
7
Считайте, что на MyComponent
ссылаются как на переменную. Если использовали JSX, то ментальная модель тут аналогична. Эквивалент в kebab-case <my-component>
работает и в шаблоне — но настоятельно рекомендуем писать теги в PascalCase для консистентности. Это также помогает отличить их от нативных пользовательских элементов.
Динамические компоненты
Поскольку на компоненты ссылаются как на переменные, а не регистрируют их под строковыми ключами, то внутри <script setup>
при использовании динамических компонентов потребуется использовать динамическую привязку с помощью
:
<script setup> import Foo from './Foo.vue' import Bar from './Bar.vue' </script> <template> <component :is="Foo" /> <component :is="someCondition ? Foo : Bar" /> </template>
1
2
3
4
5
6
7
8
9
Обратите внимание, как компоненты могут использоваться в качестве переменных в тернарном выражении.
Рекурсивные компоненты
Однофайловые компоненты могут неявно ссылаться сами на себя с помощью имени файла. Например, файл с именем FooBar.vue
может ссылаться на себя как <FooBar/>
в своём шаблоне.
Обратите внимание, что это имеет более низкий приоритет, чем у импортированных компонентов. Если есть именованный импорт, который конфликтует с предполагаемым именем компонента от имени файла, то можно задать псевдоним для импортируемого:
import { FooBar as FooBarChild } from './components'
1
Компоненты с пространством имён
Можно использовать теги компонентов с точками, например <Foo.Bar>
, чтобы ссылаться на компоненты, вложенные в свойства объекта. Это полезно при импорте нескольких компонентов из одного файла:
<script setup> import * as Form from './form-components' </script> <template> <Form.Input> <Form.Label>label</Form.Label> </Form. Input> </template>
1
2
3
4
5
6
7
8
9
Использование пользовательских директив
Пользовательские директивы зарегистрированные глобально работают как обычно, а зарегистрированные локально можно использовать напрямую в шаблоне, как объяснялось выше для компонентов.
Но есть одно ограничение, о котором следует знать: необходимо именовать локальные пользовательские директивы в соответствии со следующей схемой: vNameOfDirective
, чтобы их можно было использовать напрямую в шаблоне.
<script setup> const vMyDirective = { beforeMount: (el) => { // сделать что-нибудь с элементом } } </script> <template> <h2 v-my-directive>Какой-то заголовок</h2> </template>
1
2
3
4
5
6
7
8
9
10
11
<script setup> // импорт также работает, его можно переименовать для соответствия схеме именования import { myDirective as vMyDirective } from '. /MyDirective.js' </script>
1
2
3
4
defineProps
и defineEmits
Чтобы объявить props
и emits
при использовании <script setup>
нужно использовать API defineProps
и defineEmits
, которые предоставляют полную поддержку вывода типов и автоматически доступны внутри <script setup>
:
<script setup> const props = defineProps({ foo: String }) const emit = defineEmits(['change', 'delete']) // код setup </script>
1
2
3
4
5
6
7
8
9
defineProps
иdefineEmits
— макросы компилятора используемые только внутри<script setup>
. Их не нужно импортировать и они будут компилироваться при обработке<script setup>
.defineProps
принимает то же значение, что и опцияprops
, аdefineEmits
принимает то же значение, что и опцияemits
.defineProps
иdefineEmits
предоставляют правильный вывод типов на основе переданных опций.Опции, переданные в
defineProps
иdefineEmits
будут подняты из setup в область видимости модуля. Поэтому опции не могут ссылаться на локальные переменные, объявленные в области видимости setup. Это приведёт к ошибке компиляции. Однако, они могут ссылаться на импортированные привязки, поскольку они также находятся в области видимости модуля.
При использовании TypeScript можно также объявлять входные параметры и события с помощью аннотации чистых типов.
defineExpose
Компоненты со <script setup>
по умолчанию закрытые — т.е. публичный экземпляр компонента, получаемый через ссылку в шаблоне или цепочку $parent
, не объявляет доступа к каким-либо привязкам внутри <script setup>
.
Чтобы явно объявить свойства в компоненте со <script setup>
, воспользуйтесь макросом компилятора defineExpose
:
<script setup> import { ref } from 'vue' const a = 1 const b = ref(2) defineExpose({ a, b }) </script>
1
2
3
4
5
6
7
8
9
10
11
Когда родитель запросит экземпляр этого компонента через ссылку в шаблоне, то полученный экземпляр будет иметь вид { a: number, b: number }
(ref-ссылки автоматически разворачиваются, как и для обычных экземпляров).
useSlots
и useAttrs
Использование slots
и attrs
внутри <script setup>
должно встречаться крайне редко, так как в шаблоне прямой доступ к ним можно получить через $slots
и $attrs
. В редких случаях, когда они всё же нужны, можно воспользоваться вспомогательными методами useSlots
и useAttrs
соответственно:
<script setup> import { useSlots, useAttrs } from 'vue' const slots = useSlots() const attrs = useAttrs() </script>
1
2
3
4
5
6
useSlots
и useAttrs
— фактически будут runtime-функциями, которые возвращают эквивалент setupContext.slots
и setupContext.attrs
. Они также могут быть использованы в обычных функциях composition API.
Использование вместе с обычной секцией
<script>
<script setup>
можно использовать и вместе с обычной секцией <script>
. Обычный <script>
может понадобиться в случаях, когда необходимо:
- Объявление опций, которые не могут быть выражены в
<script setup>
, напримерinheritAttrs
или пользовательские опции, добавляемые плагинами. - Объявление именованных экспортов.
- Запуск побочных эффектов или создание объектов, которые должны выполняться только один раз.
<script> // обычный <script>, выполняется в области видимости модуля (только один раз) runSideEffectOnce() // объявление дополнительных опций export default { inheritAttrs: false, customOptions: {} } </script> <script setup> // выполняется в области видимости setup() (для каждого экземпляра) </script>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ВНИМАНИЕ
render
-функции не поддерживаются в таком сценарии. Вместо них используйте обычный <script>
с опцией setup
.
Верхне-уровневый
await
Верхне-уровневый await
можно использовать внутри <script setup>
. Полученный код будет скомпилирован как async setup()
:
<script setup> const post = await fetch(`/api/post/1`).then(r => r.json()) </script>
1
2
3
Кроме того, ожидаемое выражение будет автоматически скомпилировано в формат, сохраняющий контекст текущего экземпляра компонента после await
.
Примечание
async setup()
нужно использовать в сочетании с Suspense
, которая в настоящее время всё ещё является экспериментальной функцией. Её планируется доработать и документировать в одном из будущих релизов — но, если интересно, можно посмотреть её тесты (opens new window), чтобы увидеть как она работает.
Возможности только для TypeScript
Объявление типов для входных параметров/генерируемых событий
Типы входных параметров и генерируемых событий также можно объявить с помощью синтаксиса с передачей аргумента литерального типа в defineProps
или defineEmits
:
const props = defineProps<{ foo: string bar?: number }>() const emit = defineEmits<{ (e: 'change', id: number): void (e: 'update', value: string): void }>()
1
2
3
4
5
6
7
8
9
defineProps
илиdefineEmits
могут использовать только объявления во время runtime ИЛИ объявление типа. Использование обоих одновременно приведёт к ошибке компиляции.При использовании объявления типа, эквивалент объявления в runtime автоматически генерируется на основе статического анализа для устранения необходимости двойного объявления и обеспечении корректного поведения во время выполнения.
В режиме разработки компилятор попытается вывести из типов соответствующую валидацию в runtime. Например,
foo: String
выводится из типаfoo: string
. Если тип будет ссылкой на импортированный тип, то результатом выведения будетfoo: null
(аналогичный типуany
), так как компилятор не имеет информации о внешних файлах.В режиме production компилятор сгенерирует массив форматов объявлений для уменьшения размера сборки (входные параметры здесь будут скомпилированы в
['foo', 'bar']
)Выдаваемый код по-прежнему останется TypeScript с правильной типизацией, который может обрабатываться другими инструментами.
В настоящее время для обеспечения корректного статического анализа, аргумент объявления типа должен быть одним из следующих:
- Литерал типа
- Ссылка на интерфейс или литерал типа в том же файле
В настоящее время сложные типы и импорт типов из других файлов не поддерживается. Теоретически возможно что такая поддержка импортов появится в будущем.
Значения входных параметров по умолчанию при использовании объявления типов
Один из недостатков объявления типов через defineProps
в том, что нет возможности указать значения по умолчанию для входных параметров. Для решения этой проблемы создан макрос для компилятора withDefaults
:
interface Props { msg?: string labels?: string[] } const props = withDefaults(defineProps<Props>(), { msg: 'привет', labels: () => ['один', 'два'] })
1
2
3
4
5
6
7
8
9
Это скомпилируется в эквиваленты опций default
в runtime. Кроме того, withDefaults
предоставляет проверку типов для значений по умолчанию и гарантирует, что возвращаемый тип props
будет с удалёнными опциональными флагами для свойств, у которых указаны значения по умолчанию.
Ограничение: Никаких импортов с помощью src
Из-за разницы в семантике выполнения модулей код внутри <script setup>
полагается на контекст однофайлового компонента. При перемещении во внешние файлы .js
или .ts
, это может привести к путанице как для разработчиков, так и для инструментов. Поэтому <script setup>
нельзя использовать с атрибутом src
.
Setur’dan güvenle al, tatilde kal!
Seyahatin içinde hayat var. Hayatın içindeyse isteklerimiz. Seyahate dair istediğin ne varsa, gerçek olması için tam 57 yıldır Setur yanında! Kalitesini tatilinizin her anında hissedeceğiniz Setur ile rüya gibi zamanlar sizi bekliyor.
Setur olarak sadece Türkiye’de değil, dünyada da farkımızdan söz ettiriyoruz. ISO 9000 — 2001 Standardları ile tescilli olan kalitemiz, aynı zamanda IATA ASTA ve UFTAA gibi dünyaca bilinen, önemli kuruluşlara da üye olmamız da büyük bir etken!
400’e yaklaşan acentemiz ve pek çok sınırda bulunan duty free hizmetlerimiz ile siz degerli misafirlerimizin tüm ihtiyaçlarını karşılamaya devam ediyoruz. 1500’e yakın uzman personelimiz ile size her zaman en iyi hizmeti sunmayı amaçlıyoruz. Tatilinizin her aşamasında size destek olmaya hazır personelimiz ve özenle seçilmiş anlaşmalı otellerimiz sayesinde her anlamda beklentilerinizi karşılıyoruz.
Güzelse, Güvense, Tatilse Setur diyerek hayalinizdeki seyahatin gerçek olmasını sağlayan Setur, geniş otel ve tur seçenekleri ile yılın her mevsiminde keyifli bir seyahat olanağu sunuyor. Sunduğumuz hizmetlerden bazıları:
- Юрт ичи ве юрт диши тур операторлюгю
- Учак билети сатиши
- Kongre ve etkinlik organizasyonları
- Ерель хизметлер
Setur olarak herkesin zevk ve tercihlerine uygun, binlerce oteli sizlerle buluşturuyoruz. Веб-сайт mizin kullanıcı dostu arayüzü sayesinde, filtreleri kullanarak, dilediğiniz tatil konseptini kolayca bulabilirsiniz. Böylece подол zevklerinize подол де bütçenize uygun olan otellere kolayca ulaşabilirsiniz. Setur, sayesinde aşağıda yer alan seçeneklere göre filtreleme işlemini kolayca yapabilirsiniz:
- Отель по адресу
- Фият аралыгы
- Конаклама типи
- Yalnızca müsait tesisler
- Popüler özellikler (Güvenli turizm sertifikası ve лунапарк)
- Белгелер
- Темалар (Erken rezervasyon otelleri, butik oteller vb.)
Bu seçenekler arasından tercih yaparak tatil planını kişiselleştirmeniz mümkündür. Sektördeki deneyimimiz sayesinde bu seçenekler arasından tam zevklerinize uygun bir tatil alternatifi bulacağınıza eminiz! En önemlisi uçak biletinin dahil olduğu paketlerden her şey dahil otellere kadar geniş kapsamda seçeneği bir arada bulabilirsiniz. Бунунла Бирликте 5 yıldızlı otel, yarım pansiyon, oda kahvaltı ya da butik otel gibi farklı seçenekler de mevcuttur.
Kaliteli hizmet anlayışına sahip Bodrum otelleri, tam da bu noktada isteklerinizi karşılar. Ее kesime hitap eden çeşitliliği ile unutamayacağınız tatil ortamını oluşturur. Открытый sporlarla адреналини dorukta yaşayabileceğiniz Fethiye де farklı бир татил destinasyonu olarak karşınıza çıkar. Fethiye otelleri, yeşil ve mavinin her tonunu görebileceğiniz lokasyonlarda bulunur. Yılın farklı zamanlarında turist akınına uğrayan oteller, konaklama tipi ve yeme-içme hizmetleriyle büyüler.
Setur, yurt dışı turları sayesinde de hayallerinizi gerçekleştirmenize yardımcı olur! Böylece en uzak bölgelere bile kusursuz bir rota ile yolculuk yapabilir; farklı kültürleri keşfedebilirsiniz. Dilerseniz Büyük Balkanlar turu ile otobüs yolculuğu yapabilir, dilerseniz kendinizi Maldivlerin eşsiz güzelliğine bırakabilirsiniz. Bununla birlikte Amerika, Avrupa, Uzakdoğu turları da en keyifli alternatifler arasındadır. Turlar кромка ülke кромка де şehir bazında yapılabilir. Eğer hayaliniz, хеп görmek istediğiniz о şehrin sokaklarında kendinizi kaybetmekse şehir turlarını tercih edebilirsiniz. Барселона, Прага ве Рома Башта olmak üzere pek çok şehir turu, bölgeyi en verimli şekilde gezmenize yardımcı olacak rotayı belirlemenize yardımcı olur.
Setur Aracılığıyla Nerelere Tatile Gidebilirsiniz?Setur ile yüzlerce farklı destinasyona gidebilir hem keyifli hem de verimli bir tatil yapabilirsiniz. Yurt dışı ya da yurt içi fark etmeksizin Setur’la birlikte yola çıktığınız tüm rotalar, memnuniyet ve mutluluk sağlar. Doğa ile başbaşa kalmak için genellikle Karadeniz turları Idealdir. Yeşilin her tonunu görebileceğiniz bu turlar, benzersiz konaklama avantajları da sunar.
Denize girmek ve yaz sıcağından faydalanmak isteyenler için ise Ege ve Akdeniz bölgesi güzel bir seçimdir. Bu bölgeler, yıl içerisinde pek çok yerli ve yabancı turisti de ağırlar. Bu bölgedeki tesisler arasından aile oteli, aquaparka sahip oteller ya da Yetişkin oteli seçeneklerinden birini tercih edebilirsiniz. Bu bölgede Yer Alan butik oteller, özellikle balayı çiftleri için iyi bir alternatiftir. Sakin ve huzurlu bir tatil yapmak isteyen kişiler butik otelleri gönül rahatlığı ile tercih edebilir. Otellerin çiftler için sunduğu oda süsleme, akşam yemeği ya da беседка kullanımı ayrıcalıklarından faydalanmak да mümkündür.
Güneye inmek isteyenler, Antalya otellerini gönül rahatlığı ile tercih edebilir. Özellikle yaz aylarında binlerce misafir ağırlayan oteller, kaliteli hizmetleri ile unutulmaz tatil imkânı sunar. Bu hizmetlerden faydalanmak isteyenler için Alanya otelleri iyi bir alternatiftir. Her şey dahil, butik ya da aile otelleri arasından seçim yaparak tercihlerinizi kolayca şekillendirebilirsiniz. Hangi oteli seçerseniz seçin, Setur farkı ile kaliteli bir hizmet alacağınızdan kuşkunuz olmasın!
Rotasını Ege taraflarına çeviren misafirler Marmaris otellerini tercih edebilir. Bölge, doğal güzelliklerinin yanı sıra tarihi mirasıyla da büyüler. Genellikle kıyı şeridinde ve merkezde Yer Alan oteller, farklı zevklere hitap eder. Современные tasarımlara sahip odaları, yeme-içme servisi ve havuzları ile her günü keyifle geçirmenize yardımcı olur.
Marmara Bölgesi’nde yer alan Sapanca, sakin ve huzurlu bir tatil geçirmek isteyenlerin alternatifleri arasında. Аквапарк и спа hizmeti veren Sapanca otelleri, keyifli bir tatil sunar. Yılın yorgunluğunu pek çok aktivite ile atabilir, eşsiz manzaranın keyfini çıkarabilirsiniz.
Bununla birlikte hem Türkiye’de hem de yurt dışındaki pek çok farklı bölgeye Setur’un tur imkânları ile ya da sunduğu avantajlı fiyatlar yardımıyla kolayca ulaşabilirsiniz.
Юрт Dışı Turları İle Hayalinizi Yaşayın!
Dünya tarihini keşfetmek, yeni insanlarla tanışmak ve farklı maceralara atılmak için yurt dışı turları iyi bir alternatiftir. Setur, pek çok ülkeye rota çıkararak unutulmaz bir tatil geçirmenizi sağlar. Hangi turu tercih ederseniz edin, ее biri misafirlerin konforu için özenle hazırlanır. Uçak bileti dahil olan turlar sayesinde tatilinizi çok daha uygun fiyatlar ile yapabilirsiniz. Setur gidiş — dönüş bileti arama, aktarma işlemleri gibi zaman alan işleri sizin yerinize tamamlar. Böylece подол maliyetten подол де zamandan tasarruf edebilirsiniz.
- Setur ile Fransa, Hollanda ve Almanya turlarını tercih edebilir ya da direkt olarak bir şehrin güzelliklerini keşfedebilirsiniz.
- Berlin, Sofya ve Paris başta olmak üzere pek çok şehir turu, o bölgenin tüm güzelliklerinden faydalanmanızı sağlar.
- Akşam yemeği ya da tüm ekstra turlar dahil seçenekleri arasından tercih yaparak ekonomik otellerde konaklama imkanına sahipsiniz.
- Тюркче Рехберли tur avantajı kişiler arası iletişimi güçlendirir.
Setur, uçak yolculuğunu tercih etmeyenler için otobüslü tur ayrıcalığı da sunar. Böylece gezerek seyahat edebilir, belirli destinasyonlarda konaklayabilirsiniz. Büyük Balkan turları, otobüs ile gezilebilecek yerler arasındadır. Ulaşım, konforlu ve luks otobüslerle tamamlanır. Bu avantaj, misafirlerin rahat etmesini sağlar. Aynı zamanda rotaların Türkiye’ye yakın olması sebebi ile yorgunluk ve bitkinlik Riskleri ile karşılaşmazsınız.
Yurt İçi Kültür Turları İle Ülkemizin Dört Bir Yanını Keşfedin!
Gezerken öğrenmeyi tercih edenler için yurt içi kültür turları iyi bir alternatiftir. Farklı yerleri keşfetmek ve ЮНЕСКО koruma listesine adını yazdırmış güzellikleri incelemek, Setur ile mümkündür! Birbirinden kaliteli oteller ile kültür turları çok daha verimli hale gelir. Bu süreçte şehre özgü lezzetleri tatmak oldukça önemli. Bu turlar, yaşadığınız yeri daha yakından tanımanız için iyi bir fırsattır. Kendinizi kâşif gibi hissetmenizi sağlayan kültür turları ile antik kentleri, müzeleri ve pek çok yeri ziyaret edebilirsiniz. Bulunduğunuz bölgelerde fotograf çekerek anılarınızı ölümsüzleştirebilirsiniz! Böylece bir sonraki rotanızı farklı kültür turlarına çevirebilirsiniz. Gezerken öğrenmeyi семь kişiler, юрт içi kültür turları ile de oldukça keyifli zaman geçirebilir.
Bütçe dostu fiyatlar, tur programları ve alanında uzman rehberler, kaliteli bir tatil geçirmenizi sağlar. Türkiye’nin her bölgesini keşfetmek, yurt içi kültür turları ile çok daha avantajlı hâle gelir. Günübirlik, haftasonu, lezzet ya da otobüslü kültür turlarından birini seçebilirsiniz. Özel filtreler, kişisel tercih ve zevklere göre en iyi alternatifleri sunar. Böylece hayalinizdeki tatile Setur ile ulaşmak sizi her anlamda karlı çıkarır.
Her Bütçeye Uygun Tatil İçin Setur!Setur, kısıtlı zaman içerisinde hayalini kurduğunuz tatilin tüm detaylarıyla ilgilenir. Ее bütçeye uygun fiyat avantajlarımız sayesinde tatilinizin her anından keyif almanıza yardimcı olur. Erken rezervasyon başta olmak üzere pek çok ayrıcalığı da size sunar. Böylece bütçenizi aşacağını düşündüğünüz yerlere bile çok daha uygun fiyatlar ile gidebilirsiniz.
Otel ya da tur rezervasyonu yaptırmadan önce nasil bir tatile gitmek istediğinize karar vermeniz bu süreçte önemlidir. Butik, 5 yıldızlı, termal ya da casino otelleri arasında tercih yaptığınızda sonraki adımlar daha kolay hale gelir. Temayı belirledikten sonra uygun fiyatlı oteller arasından dilediğinizi seçebilirsiniz. Yalnızca yrt içi değil, yrt dışı fırsatlarından da yararlanmak mümkündür. Asya ya da Avrupa tatiline hız kesmeden devam etmek, farklı deneyimlere yelken açmanızı sağlar.
Веб-сайтmizden takip edebileceğiniz kampanyalardan da yararlanarak çok daha ekonomik tatil yapabilirsiniz. Erken rezervasyon olanaklarımız sayesinde tatil planınızı aylar öncesinden, en uygun fiyatlarla yapabilirsiniz.
Setur’un Ödeme Olanakları Güvenilir midir?Setur, gelişmiş ödeme seçenekleri ile her bütçeye hitap eder. Web sitemiz üzerinden “Ödeme Seçenekleri” kısmına tıklayarak kart çeşitleri ve ayrıcalıklarını detaylı inceleyebilirsiniz.
Setur, rezervasyon işlemlerinde güvenlik standardlarını destekler. Kişisel verilerinizi her zaman koruyarak sizleri memnun eder. Веб-сайт Sectigo adı verilen siber güvenlik sağlayıcı tarafından korunur. Kullanıcıların web güvenliğini sağlayan sistem, üst düzey çözümler sunar. Böylece rezervasyon işlemlerinde içiniz hep rahat olur.
Farklı ödeme seçeneklerimiz ve kampanyalarımız ile kullanıcılarımıza pek çok avantaj sunarız. Tatil planınız iptal mi oldu? Aniden gelişen durumlara hazırlıklı olmak için, tatil otellerinde geçerli olan 72 saate kadar iptal paketini edindiğinizde iptal iade işlemini kolayca gerçekleştirebilirsiniz. İptal koşulları hakkında detaylı bilgi için müşteri hizmetleri numaramızı tuşlayabilir, aklınıza takılan tüm sorulara cevap alabilirsiniz.
Сетурун Сундугу Фирсатлар Нелердир?Setur, ihtiyaçlarınıza ve bütçenize en uygun tatil rotalarını oluşturur. Pek çok kriteri filtreleme imkânı sunarak kontrolü degerli misafirlerine bırakır. Geliştirilmiş ödeme seçenekleri ve taksit avantajları, hayalinizdeki tatili kolayca ödemenize imkân tanır. Böylece rotanızı zorlanmadan oluşturduktan sonra tatil günün gelmesini heyecanla beklemek dışında yapacağınız hiçbir şey kalmaz. Hem ihtiyaçlarınıza hem de bütçenize uygun tatil rotasını planlamayı Setur’a bırakabilirsiniz!
Hayalinizdeki tatili belirterek gerisini Setur’un tecrübesine bırakın! Birbirinden kaliteli otellere ve bölgelere rota çıkaran Setur, tam da aklınızdaki tatile ulaşmanızı sağlar. Размер yalnızca ода ве тема seçimi kalır. Yilbaşı, Sevgililer Günü ya da Bayram zamanlarında tercih edeceğiniz otellerde konaklayabilirsiniz. Kalabalık бир айле iseniz çocuk dostu oteller iyi бир alternatiftir. Tamamen sizin talepleriniz doğrultusunda şekillenen tatiller, yılın yorgunluğunu atmanız için konfor sunar.
Soğuk havalarda tercih edeceğiniz termal ya da kış otelleri de farklı bir deneyime imza atmanızı sağlar. Dilerseniz şifalı kaplıcaların keyfini çıkarabilir, dilerseniz де каяк yaparak eğlenceli vakit geçirebilirsiniz. Бирбиринден калители юрт ичи ве юрт диши турлары, татилинизе фаркли бир йон верир. «Мутлулуга Гиден Йол Кешфетмексе Сетур!» mottosu ile yeni yerler keşfetme yolcuğunuzdaki en büyük seyahat arkadaşınız Setur, mutlu bir tatil deneyimlemenizi sağlıyor.
Setur sayesinde popüler beldeleri keşfederek konforlu günler geçirebilirsiniz. Türkiye’nin vazgeçilmez yerlerinden olan Ege ve Akdeniz sahilleri, mavinin her tonunu içerisinde barındırır. Bu bölgede yapılan gemi turları, kişilere farklı bir deneyim kazandırır. Karadeniz turlarında ziyaret edeceğiniz her bölge, eşsiz güzelliği ile büyüler. Misafirler tek seferde pek çok yere uğrayarak yöresel lezzetlerin tadını çıkarabilir. Bununla birlikte GAP turlarına katılarak farklı medeniyetlerin izlerini de inceleyebilir.
Setur’un Erken Rezervasyon Fırsatları Nelerdir?
Çok daha uygun fiyatlarla tatil yapmak için erken rezervasyon otellerini tercih edebilirsiniz. Yılın belirli zamanlarında yapılan bu fırsat ile tatili aylar öncesinden planlamak mümkündür. Cazip otellerden birine rezervasyon yaparak mutluluğunuzu ikiye katlayabilirsiniz!
Bu ayrıcalık hem yurt içi hem de yurt dışı tatillerinde kullanılabilir. Rotanızı daha uygun fiyatlarla tamamladığınız için yıl içerisinde birkaç kez tatile çıkabilirsiniz. Erken rezervasyon, özellikle yaz aylarını iple çekenler için son derece uygundur. %50’ye varan indirimler sayesinde tatili gönül rahatlığı ile tamamlayabilirsiniz. 7-8 дней öncesinde yaptığınız rezervasyonlar, bütçenize katkı sağlar. Веб-сайтmizde Yer Alan fırsatlara Göz atarken Worldpuan indirimlerinden de faydalanma imkânınız bulunduğunu unutmayın!
Сетур Сон Дакика Фирсатлары Нелердир?
Tatil fırsatlarını kaçırdığınız için üzülmeyin! Aniden gelişen tatil planları için Setur’da pek çok seçenek mevcuttur. Юрт içi ве юрт dışı tatillerinin yanı sıra каяк, термал, kültür ве gemi tatillerinde де pek çok opsiyon bulunur. Hizmet kalitesinde hiçbir fark olmayan son dakika fırsatları, tatil planını Yetiştiremeyenler için Idealdir. Çok daha uygun fiyatlarla sahip olabileceğiniz turlar, keyifli vakit geçirmenizi sağlar. Böylece подол kendinize подол де sevdiklerinize uygun fiyatlı tatil hediyesi verebilirsiniz.
Kararsız kaldığınız her noktada Setur müşteri hizmetleri ekibi ile görüşebilirsiniz. Yepyeni tatil merkezlerini birlikte keşfedebilir, en uygun rotaları çıkarabilirsiniz. Setur, uzun yılların verdiği tecrübe ile misafir memnuniyetini sağlamaya devam eder.
En Uygun Yurt Dışı Turları ve Fırsatları l Setur
Yeni Ülkeler Keşfetmenin Güzelliği
Yurt dışı turları , farklı kıtalar keşfetmek, daha önce hiç gitmediğiniz şehirlerde, belki dilini bilmediğiniz ülkelerde yeni kültürler tanımak gibi farklı deneyimler yaşamanızı sağlıyor. Birbirinden ilginç tatil seçenekleri sunan yurtdışı turları ile deniz-kum-güneş, kış, kültür, адреналин, alışveriş, romantizm hatta gece hayatı ve yeme-içme tatili dahi yapmak mümkün oluyor. Kalabalık grupların bile aynı rotada mükemmel bir urt dışı tur deneyimi yaşaması, Setur farkı ile mümkün oluyor ve tüm tatilcilerin beğenisini topluyor.
Юрт Dışı Turları Hakkında Bilgi
Ее ülke kendine имеет dokusu, tarihi, kültürel değerleri ve alışkanlıkları ile insanlar tarafından keşfedilmeyi bekliyor. Yurt dışı turları denildiğinde Аврупа, Америка, Узакдогу, Африка, Австралия и Йени Зеланда, Россия гиби пек чок юльке ве кита акла гелиёр. Her lokasyon farklı bir tatil seçeneği sunuyor ve bu sayede ziyaretçiler her defasında yeni deneyimler yashayabiliyor.
Yurt dışı tur seçenekleri arasında kısa süreli tatillerde en çok tercih edilen turlar, yakınlığı nedeni ile Avrupa turları oluyor. Avrupa turları, İtalya, İspanya, Fransa gibi ülke merkezli olabilyorken, birden fazla ülkeyi içeren Batı Avrupa, Orta Avrupa gibi тур пакетлери де булунуйор. Ülkelerin tarihini, yemek kültürlerini, alışkanlıklarını keşfetmek, yurt dışından alışveriş yapmak veya romantik bir gezi için tercih edilen yurt dışı turları arasında, Avrupa turları bu nedenle önemli bir yer kaplıyor. Orta Avrupa turları , Budapeşte, Avusturya, İsviçre, Çek Cumhuriyeti gibi ülkeleri kapsiyor ve aynı anda birden fazla ülkeyi görmek isteyenler için alternatif planlar sunuyor. Kuzey Avrupa turları ise, Baltık başkentlerini rotasında bulunduran gemi turları ya da İngiltere, İrlanda, Norveç, İsveç gibi soğuk ama bir o kadar da çekici ülkelerin ilginç dünyalarını tanıtan tur planlarından oluşuyor.
Узакдогу, Америка, Африка gibi lokasyonlara düzenlenen yurt dışı turları hem uzun süreli hem de kısa süreli alternatifleri ile tatil severlerin beğenisine sunuluyor. Киса сюрели юрт диши турлары, ее дайм йогун бир кешиф хейечаны сунуйор. Узун сурели юртдыши турлары исе подол динленме ве хузур татили, подол де кешиф татили япма имкани танийор. Uzakdoğu turlarında Çin, Japonya, Güney Kore gibi tarihleri, gelenekleri ile ilgi çeken lokasyonların yanı sıra, Endonezya, Tayland, Singapur gibi egzotik ülkeler de bulunuyor. Amerika turları ise eğlence, doğa, alışveriş ve keşif olanakları içeriyor. Eğlenmek için Лас-Вегас вейя Лос-Анджелес, doğanın güzelliklerini keşfetmek içinse San Fransisco, tatil severlere kapılarını açıyor. Yeni Zelanda ve Avustralya turları doğal güzelliklerin kapılarını farklı kültürlerle birlikte açıyor. Сиднейская опера Бинасы, Мави Даг, Эден Янардаги, Скай Тауэр и Анзак Аниты, bu rotada görülmesi gereken yerler arasında bulunuyor.
Юрт Dışı Turları İçin Neler Gerekli?
Yurtdışı turlar için gidilecek bölge ve ülkelere göre vize alınması gerekiyor. Güney Kore gibi vize istemeyen ülkeler için pasaport ve uygun bir tur planı seçmek Tek başına Yeterli oluyor.