Flarum (v2.0.0)
    Preparing search index...

    The Component class defines a user interface 'building block'. A component generates a virtual DOM to be rendered on each redraw.

    Essentially, this is a wrapper for Mithril's components that adds several useful features:

    • In the oninit and onbeforeupdate lifecycle hooks, we store vnode attrs in `this.attrs. This allows us to use attrs across components without having to pass the vnode to every single method.
    • The static initAttrs method allows a convenient way to provide defaults (or to otherwise modify) the attrs that have been passed into a component.
    • When the component is created in the DOM, we store its DOM element under this.element; this lets us use jQuery to modify child DOM state from internal methods via the this.$() method.
    • A convenience component method, which serves as an alternative to hyperscript and JSX.

    As with other Mithril components, components extending Component can be initialized and nested using JSX, hyperscript, or a combination of both. The component method can also be used.

    return m('div', <MyComponent foo="bar"><p>Hello World</p></MyComponent>);
    
    return m('div', MyComponent.component({foo: 'bar'), m('p', 'Hello World!'));
    

    Type Parameters

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    previousHeight: number = 0
    previousTop: number = 0
    resizing:
        | { others: number; row: number; startShown: number; startX: number }
        | null = null

    While the edge is being dragged: where it started, and what the column is sized against.

    Methods

    • A row scrolls sideways, so it clips anything that overflows it, and a column's menu would be cut off at the bottom of its row. Pinning it to the window instead lets it overlap the row below, opening upwards when there's more room there and scrolling when there's room for neither.

      Returns void