Skip to content
Mithril.js 2
Main Navigation РуководствоAPI

Русский

English
简体中文
繁體中文
Español
Français
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Русский

English
简体中文
繁體中文
Español
Français
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Внешний вид

Sidebar Navigation

API

Основной API

m(selector, attributes, children)

render(element, vnodes)

mount(root, component)

route(root, defaultRoute, routes)

request(options)

parseQueryString(string)

buildQueryString(object)

buildPathname(object)

parsePathname(string)

trust(html)

fragment(attrs, children)

redraw()

censor(object, extra)

Опциональный API

stream()

Руководство

Содержание страницы

fragment(attrs, children) ​

Описание ​

Позволяет прикреплять методы жизненного цикла к фрагменту vnode.

javascript
var groupVisible = true;
var log = function () {
  console.log('group is now visible');
};

m('ul', [
  m('li', 'child 1'),
  m('li', 'child 2'),
  groupVisible
    ? m.fragment({ oninit: log }, [
        // фрагмент, содержащий два элемента
        m('li', 'child 3'),
        m('li', 'child 4'),
      ])
    : null,
]);

Сигнатура ​

Создает vnode-фрагмент vnode.

vnode = m.fragment(attrs, children)

АргументТипОбязательноОписание
attrsObjectНетHTML атрибуты или свойства элемента
childrenArray<Vnode>|String|Number|BooleanНетДочерние vnodes. Могут быть переданы как отдельные аргументы (splat arguments) с использованием синтаксиса распространения.
возвращаетVnodevnode-фрагмент vnode

Как читать сигнатуры

Как это работает ​

m.fragment() создает vnode-фрагмент vnode с атрибутами. Он предназначен для продвинутых случаев использования, таких как применение ключей или методов жизненного цикла.

Vnode-фрагмент представляет собой список DOM-элементов. Если вам нужен обычный vnode, представляющий один DOM-элемент и не требующий логики работы с ключами, используйте m().

Обычно для обозначения списка узлов можно использовать простые массивы или синтаксис распространения:

javascript
var groupVisible = true;

m(
  'ul',
  m('li', 'child 1'),
  m('li', 'child 2'),
  groupVisible
    ? [
        // фрагмент, содержащий два элемента
        m('li', 'child 3'),
        m('li', 'child 4'),
      ]
    : null
);

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

Использование m.fragment вместо ручного создания структуры объекта vnode имеет несколько преимуществ: m.fragment создает мономорфные объекты monomorphic objects, которые обладают лучшей производительностью, чем динамическое создание объектов. Кроме того, использование m.fragment делает ваш код более понятным для других разработчиков и снижает вероятность ошибочной установки атрибутов на сам объект vnode, а не на его объект атрибутов attrs.

Pager
Предыдущая страницаtrust(html)
Следующая страницаredraw()

Выпущено на условиях лицензии MIT.

Авторские права (c) 2024 Mithril Contributors

https://mithril.js.org/fragment.html

Выпущено на условиях лицензии MIT.

Авторские права (c) 2024 Mithril Contributors