| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
partial "hot module replacement" for "Custom Elements"
"Hot Module Replacement" (or "Hot Module Reloading") is a well-established mechanism for the development of web applications - it works fine, but only as long as you don't try to replace the definitions of "custom elements".
updatable-custom-elements partially implements "Hot Module Reloading" for "custom elements" with the idea to facilitate development and debugging, but not for module replacement at runtime.
NPM users: please consider the Github README for the latest description of this package (as updating the docs would otherwise always require a new NPM package version)
Just a small note: if you like this module and plan to use it, consider "starring" this repository (you will find the "Star" button on the top right of this page), so that I know which of my repositories to take most care of.
In order to understand the benefits and limitations of updatable-custom-elements, it is important to know how they work:
Consequently, the following details are left untouched:
Restrictions 2 and 3 can easily be circumvented by providing redirections in the class implementation:
class updatableElement extends HTMLElement {
constructor () {
super()
this.initialize()
}
connectedCallback () { this.onConnect() }
disconnectedCallback () { this.onDisconnect() }
adoptedCallback () { this.onAdopt() }
attributeChangedCallback (Name, oldValue, newValue) {
this.onAttributeChange(Name, oldValue, newValue)
}
initialize () { ... }
onConnect () { ... }
onDisconnect () { ... }
onAdopt () { ... }
onAttributeChange (Name, oldValue, newValue) { ... }
}Additionally, the typical caveats of "hot module replacement" apply here as well:
If you still want to update "custom elements" at runtime, just read on.
updatable-custom-elements may be used as an ECMAScript module (ESM) or explicitly loaded by inserting a <script> element into the web document.
For the ESM variant, install the package into your build environment using NPM with the command
npm install updatable-custom-elements
and import it into your code whereever needed
import "updatable-custom-elements"Otherwise, load the plain script file directly
<script src="https://unpkg.com/updatable-custom-elements"></script>Once loaded or imported, updatable-custom-elements work silently in the background - just define (and use) your "custom elements" as usual:
class A extends HTMLElement {
...
}
customElements.define('custom-element',A)
class B extends HTMLElement {
...
}
customElements.define('custom-element',B)You may easily build this package yourself.
Just install NPM according to the instructions for your platform and follow these steps:
You may also look into the author's build-configuration-study for a general description of his build environment.
| Back | FazBrowse Home | New Git URL |