ViteTemplateHTML
Локальні та глобальні змінні
Цей документ описує використання локальних змінних в HTML-компонентах та глобальних змінних в проекті.
Глобальні змінні:
Глобальні змінні вказуються в файлі template.config.js в корені проекту, в обєкті HTMLVariables: {}:
У поточній збірці глобальні HTML-змінні й helper-функції задаються в HTMLVariables і доступні в будь-якому компоненті як звичайні пропси.
// template.config.js
export default {
...
HTMLVariables {
SITE_NAME: 'My Site',
API_URL: 'https://jsonplaceholder.typicode.com/users',
CURRENT_YEAR: () => new Date().getFullYear(),
CLEAN_PHONE: (phone = '') => phone.replace(/(?!^)\+|[^\d+]/g, ''),
}
...
}
// Використання в будь-якому місці проекту як звичайних пропсів
<head>
<title>{{SITE_NAME}}</title>
</head>
<each data="{{API_URL}}" loop="user, index in data">
<div class="user-card">
<h2>{{user.name}}</h2>
<p>{{user.username}}</p>
<p>{{user.address.street}}</p>
<p>{{user.email}}</p>
</div>
</each>
Локальні змінні:
Локальні змінні вказуються в верхній частині файлу компонента в тегу<script define></script> як звичайні JS змінні.
Також локальні змінні можна передавати пропсами в любий компонент що викликається в середині цього компонента.
// template.config.js
<script define>
const title = 'The Smartest Way to Do Laundry'
const logo = '@i/logo.svg'
const subTitle = 'DipDap picks up, cleans, and delivers your laundry & dry cleaning.'
const contacts = {
phone: '(800) 555-1212',
email: 'text@gmail.com',
}
</script>
<div class="product-card">
<img src="{{logo}}" alt="{{title}}"/>
<h2>{{title}}</h2>
<p>{{subTitle}}</p>
<ul>
<li>{{contacts.phone}}</li>
<li>{{contacts.email}}</li>
</ul>
</div>
Destructuring у <script define>
Змінні зі звичайних декларацій, object destructuring, array destructuring і rest-патернів підхоплюються через AST-парсер.
<script define>
const { title, image: heroImage } = card
const [firstItem, secondItem] = items
const { className = 'card', ...rest } = props
</script>
<article class="{{className}}">{{title}}</article>