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+ 사용하기

애니메이션

테스트

예제

타사 통합

경로 처리

주요 개념

Virtual DOM 노드

컴포넌트

생명주기 메서드

키

자동 리드로우 시스템

기타

프레임워크 비교

v1.x에서 v2.x로의 마이그레이션

v0.2.x에서 v2.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', '캘린더'),
        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 라이선스 하에 배포되었습니다.

Copyright (c) 2024 Mithril Contributors

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

MIT 라이선스 하에 배포되었습니다.

Copyright (c) 2024 Mithril Contributors