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

入門

安裝

簡單應用程式

資源

JSX

在舊版瀏覽器上使用 ES6+

動畫

測試

範例集

第三方整合

路徑處理

關鍵概念

虛擬 DOM 節點

組件

生命周期方法

Keys

自動重繪系統

雜項

框架比較

從 v1.x 遷移

從 v0.2.x 遷移

API

本頁導覽

第三方整合 ​

與第三方函式庫或原生 JavaScript 程式碼的整合,可以透過生命週期方法達成。

noUiSlider 範例 ​

javascript
/** NoUiSlider 封裝元件 */
function Slider() {
  var slider;

  return {
    oncreate: function (vnode) {
      // 在此初始化第三方函式庫。
      slider = noUiSlider.create(vnode.dom, {
        start: 0,
        range: { min: 0, max: 100 },
      });
      slider.on('update', function (values) {
        vnode.attrs.onChange(values[0]);
        m.redraw();
      });
    },
    onremove: function () {
      // 移除時清理第三方函式庫。
      slider.destroy();
    },
    view: function () {
      return m('div');
    },
  };
}

/** 範例應用程式元件 */
function Demo() {
  var showSlider = false;
  var value = 0;

  return {
    view: function () {
      return m(
        '.app',
        m(
          'p',
          m(
            'button',
            {
              type: 'button',
              onclick: function () {
                showSlider = !showSlider;
              },
            },
            showSlider ? '銷毀滑桿' : '建立滑桿'
          )
        ),
        showSlider &&
          m(Slider, {
            onChange: function (v) {
              value = v;
            },
          }),
        m('p', value)
      );
    },
  };
}

m.mount(document.body, Demo);

線上範例

Bootstrap FullCalendar 範例 ​

javascript
/** FullCalendar 封裝元件 */
var FullCalendar = {
  oncreate: function (vnode) {
    console.log('FullCalendar::oncreate');
    $(vnode.dom).fullCalendar({
      // 在此設定初始選項與回調函式。
    });
  },
  onremove: function (vnode) {
    // 在此執行銷毀或清理方法。
    $(vnode.dom).fullCalendar('destroy');
  },
  view: function (vnode) {
    return m('div');
  },
};

/** 範例應用程式元件 */
function Demo() {
  var fullCalendarEl;

  function next() {
    $(fullCalendarEl).fullCalendar('next');
  }

  function prev() {
    $(fullCalendarEl).fullCalendar('prev');
  }

  return {
    view: function (vnode) {
      return [
        m('h1', 'Calendar'),
        m(FullCalendar, {
          oncreate: function (vnode) {
            fullCalendarEl = vnode.dom;
          },
        }),
        m(
          'button',
          {
            onclick: prev,
          },
          'Mithril.js 按鈕 -'
        ),
        m(
          'button',
          {
            onclick: next,
          },
          'Mithril.js 按鈕 +'
        ),
      ];
    },
  };
}

m.mount(document.body, Demo);

線上範例

Pager
上一頁範例集
下一頁路徑處理

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors

https://mithril.js.org/integrating-libs.html

以 MIT 授權條款 發布。

版權所有 (c) 2024 Mithril Contributors