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) ​

描述 ​

允許將生命週期方法附加到片段 虛擬節點。

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 = m.fragment(attrs, children)

引數類型是否必填描述
attrsObject否HTML 屬性或元素屬性。
childrenArray<Vnode>|String|Number|Boolean否子 虛擬節點。 可以使用 展開語法。
回傳值Vnode一個片段 虛擬節點。

如何閱讀簽名

運作原理 ​

m.fragment() 建立一個具有屬性的 片段虛擬節點。 它適用於涉及 鍵 或 生命週期方法 的進階使用案例。

片段虛擬節點表示 DOM 元素的列表。 如果您想要一個表示單個 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 陣列無法被鍵控或持有生命週期方法。 一種選擇是建立一個包裝元素來承載鍵或生命週期方法,但有時不希望有多餘的元素(例如在複雜的表格結構中)。 在這些情況下,可以使用片段虛擬節點。

使用 m.fragment 而不是手動編寫虛擬節點物件結構有幾個好處:m.fragment 建立 單型別物件,與動態創建物件相比,它具有更好的效能。 此外,使用 m.fragment 可以讓其他開發人員清楚了解您的意圖,並且能降低您錯誤地在虛擬節點物件本身,而不是在其 attrs 映射上設置屬性的可能性。

Pager
上一頁trust(html)
下一頁redraw()

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors

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

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors