10 Модуль - Библиотеки. Шаблонизация. JSON. WebStorage -- 02 Шаблонизация Flashcards

1
Q

Шаблонизация (templating) —

A

генерации HTML по шаблону.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Использование шаблонизации требует нескольких простых шагов:

A
    • Наличие данных которыми будет наполнятся элемент интерфейса
    • Шаблон по которому будет составлена разметка элемента
    • Библиотека которая предоставляет средства шаблонизации
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Шаблон — это

A

строка в специальном формате, которая путём подстановки значений превращается в HTML.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Внешние шаблоны имеют много преимуществ, главным образом в том, что

A

шаблоны никогда не будут загружаться клиенту, если они не нужны на странице.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Методы хранения Шаблону ему не место в файле скриптов. Один из способов — записать его это в

A

в HTML-файле, в тег template.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Подключение библиотеки в проект происходит очень просто. Есть несколько вариантов.

A
    • Скачать файл библиотеки и подключить его в index.html
    • Использовать CDN-сервис для получения ссыки на файл библиотеки
    • Если используется инструмент вроде Webpack, можно ставить библиотеку как npm-пакет
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

У нас уже есть библиотека и шаблон из которого мы изъяли текстовый контент. Для работы с шаблоном в библиотеке Handlebars есть функция

A

compile. Эта функция запускает компиляцию шаблона source и возвращает результат в виде функции, которую далее можно запустить с данными и получить строку-результат.
Handlebars.compile(source)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Вызов Handlebars.compile(source) разбивает

A

HTML-строку по разделителям и, при помощи new Function создаёт на её основе функцию.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Теперь используя функцию-шаблон template можем

A

Следующим шагом будет вызвать функцию-шаблон и передать ей menuData как аргумент. В результате получим строку с подставлеными значениями, поместим ее в тег и браузер, распарсив ее, создаст HTML-разметку.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Шаблоны и Webpack:

Чтобы настроить Webpack на работу с библиотекой Handlebars нужно:

A
-- Добавляем библиотеку:
npm install handlebars
-- Добавляем загрузчик handlebars-loader.
npm install --save-dev handlebars-loader
-- Обновляем конфигурацию Webpack, добавляя настройки загрузчика.
{
  ...
  module: {
    rules: [
      ...
      { test: /\.hbs$/, exclude: /node_modules/, use: "handlebars-loader" }
    ]
  }
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Шаблоны и Webpack:

В папке src создаем папку templates, в которой добавляем файлы шаблонов с расширением

A

.hbs. Для нашего меню это будет menu.hbs. Помещаем разметку шаблона в файл, без тега tempalte.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Шаблоны и Webpack:

Там где хотим использовать шаблон,

A

импортируем файл с шаблоном. Особенность в том, что при импорте, handlebars-loader обработает файл шаблона и в menuTemplate уже будет лежать скомпилированная функция-шаблон готовая к использованию.
import menuTemplate from ‘/path/to/templates/menu.hbs’;

const menuData = {
title: ‘Eat it createElement, templates rule!’,
items: [‘Handlebars’, ‘LoDash’, ‘Pug’, ‘EJS’, ‘lit-html’],
};

const markup = menuTempalte(menuData); // html разметка с подставленным значениями

How well did you know this?
1
Not at all
2
3
4
5
Perfectly