@choojs/nanocache

1.0.0 • Public • Published

nanocache

npm version build status downloads js-standard-style

Cache Nanocomponents.

Usage

my-component.js

var Component = require('choo/component')
var html = require('choo/html')

module.exports = class Article extends Component {
  static id (article) {
    return `article-${article.id}`
  }

  createElement (article) {
    return html`
      <article>
        <h2>${article.title}</h2>
        <p>${article.body}</p>
      </article>
    `
  }

  update () {
    return false
  }
}

example.js

var myComponent = require('./my-component')
var Nanocache = require('nanocache')

var cache = new Nanocache()
cache(myComponent)
// => create a new instance of myComponent

cache(myComponent)
// => return cached instance of myComponent

API

cache = Nanocache()

Create a new Nanocache instance.

cache.render(Nanocomponent)

Render a Nanocomponent instance. It checks a static id method that returns an id. If the id is not registered in the cache, it creates a new instance and caches it. If the id already exists, it returns the cached instance.

cache.prune()

Remove all components from the cache that don't currently have a DOM node attached.

Installation

$ npm install @choojs/nanocache

See Also

License

Apache-2.0

Dependencies (0)

    Dev Dependencies (3)

    Package Sidebar

    Install

    npm i @choojs/nanocache

    Weekly Downloads

    1

    Version

    1.0.0

    License

    Apache-2.0

    Last publish

    Collaborators

    • mreinstein
    • benlyn
    • s3ththompson
    • yoshuawuyts
    • bret
    • lrlna
    • yerkopalma
    • juliangruber
    • timwis
    • ahdinosaur
    • toddself
    • sethvincent
    • maxogden
    • shama
    • freeman-lab
    • feross
    • emilbayes
    • colingourlay
    • jameskyburz
    • almost
    • slaskis
    • ungoldman
    • graforlock
    • tornqvist
    • amongiants
    • goto-bus-stop
    • mafintosh