Skip to content

Latest commit

 

History

History
118 lines (100 loc) · 7.55 KB

CHANGELOG.md

File metadata and controls

118 lines (100 loc) · 7.55 KB

0.8.3

  • Improve progressive enhancement for keyed/non-keyed recycle strategies
  • Use IDL attributes instead of content attributes on: checked, selected, hidden
  • Minor performance fixes solved, occurred in the "keyed shuffle test"
  • Use root as the default target forwarding on event delegation by using the colon syntax click="user-create:root" will always point to the component root by default.

0.8.2

  • Web Components (Shadow DOM)
  • Runtime Compiler incl. support for Web Components
  • Mikado-Compile detect and replace repeated inline includes (not supported by the runtime compiler)
  • New callbacks mount, unmount
  • Improve Mikado.once(): supports Web Components, improved async mode, access the low level factory constructor which performs 20% faster
  • Mikado.once() will apply the best strategy for each scenario: 1. static non-looped templates, 2. static looped templates, 3. dynamic non-looped templates, 4. dynamic looped templates

0.8.1

  • A whole re-build of the library
  • Support partial hydration / progressive hydration focusing on maximum performance
  • Mikado provides you server-side rendering on an extreme performance level
  • Mikado also comes with the fastest Express Middleware Render Engine of today
  • Templates are cross-compatible, uses same template markup for Server-side-rendering as for client-side-rendering
  • The server-side-implementation follows the same strategy of sharing instances and includes
  • Moves the creation of executable template functions to the compiler (CSP friendly)
  • The core has a new architecture which improves the predecessor in any aspect
  • Templates including multiple text nodes as dynamic expressions are now supported
  • The cache strategy was completely redesigned, it now shares caches across multiple template expressions
  • The "DOM Cache Helpers" are now fully integrated into the internal cache system, which transforms template caches into a more powerful strategy when used
  • The cache injects progressively when used and don't apply in preparation by default
  • The compiler provide 5 build strategies to choose from, to optimize either performance, flexibility or size
  • A special compiler flag "cache" could be placed into the template markup to prebuild the strategy by the compiler
  • The concept of shared pools was fully re-design. The goal is still the same but instead of sharing direct access on pools it shares instances of Mikado. This greatly improves integration, not only because instances can have their own configuration (options).
  • The include system was re-build from the ground up and also support real conditional template structures through the template syntax <div if="data.length"> (they are not just "hidden" anymore)
  • It is now possible to combine all 3 kinds of include variants on a single element <div if="data.length" foreach="data" include="tpl/partial">
  • A new mounting system was implemented which is more robust and also support the new concept of shared Mikado instances
  • The event delegation was greatly improved, it now supports bubbling same events on parents up to the HTML root element, for this workload there is a new optimization available by Mikado.eventCache = true.
  • Support for SVG markup withing templates
  • A new template expression {{? ... }} to skip printing "nullable" values (except 0)
  • The expression {{#= ... }} is now supported
  • A new template expression {{! ... }} for escaping contents (SSR only)
  • Supports SSR-only mode where the limitation of having one outer element as the template root is unlocked, also there is an extraction directive to place logical placeholder elements, which will be self-extracted when rendered
  • Improved state system
  • Improved bundler and export type system
  • The registration of templates has improved, it starts instantiation right before related task and isn't cleanup automatically when calling .destroy() on a parent view
  • The store was removed, except when using Mikado.Array() you still need to pass in the store as the option observe:
  • The benchmark was moved to its own branch named bench

0.7.5

change the option pool has changed, set it to true to use both pools: Recycle Pool + Keyed Pool, or set it to false to fully disable pooling, or set it to either one of both: "queue" or "key" to enable just one of them respectively
change the option keep was removed, because it was replaced by option pool: "key" which will switch into the "explicit keyed mode"
fix observable properties
fix purge cache
add new build flag: SUPPORT_KEYED

0.7.4

improve inherit cache from factory
improve add fast path within reconciliation
improve indices requires no sync anymore
change remove dom indices, method access by index is now recommended (access by node is still supported but has extra costs, prevent looping via method access by node)
new method dispatch to call/invoke an event handler manually
fix external/internal stores

0.7.3

add make reconcile method public
change live pool becomes a non-optional feature

0.7.2

new reconcile based on "longest distance strategy"
new mikado-compile: use wildcard for compiling recursively through a directory
add es6 modules for production (bundled via babel)
add TypeScript definition file

0.7.0

new observable array based on ES6 proxy incl. polyfill (acts like a NodeList, semantically equal to an array-like object)
change the method Mikado.new() was removed, just use Mikado() instead (it automatically returns an instance)
change there are two types of external stores: 1. an extern array which gets changes now automatically applied (to keep in sync) and 2. an observable array via Mikado.array() which is in sync per default by its nature

0.6.6

new support callbacks
improve support PointerEvents for the synthetic tap listener
improve improve data-driven concept
new add new "stealth" mode when proxy is used for all template statements

0.6.2

new option keep to force Mikado to run in exclusive keyed-shared mode
new option size to limit the pool size

0.6.0

new cross-shared pools
new explicit keyed paradigm
change version numbers of compiler and compiler service are now equal with Mikados version

0.5.0

new supports native HTML5 templates via runtime compiler
new supports template definitions as string

0.4.3

new method purge to cleanup shared pools
new supports multiple remove by a given range as 2nd parameter

0.4.2

new introduce an shared object pool and a new option flag pool to enable it
improve using pool significantly improves memory allocation (cuts down by a factor of 10)
new method unregister (accordingly to "register") which points to the same method as unload (accordingly to "load")

0.4.1

change removing the redundant option proxy (it will apply automatically)
improve re-assigning templates is now close as fast as re-mounting
improve sharing partials has been improved
improve destroying/re-initializing templates has been removed
improve memory footprint when re-using partials or templates has been improved
new added a new option to prefetch templates on page start

0.4.0

change External stores no longer automatically change.
beta new option field proxy (reactive data store).
change The preserved keyword item within templates was renamed to the more common identifier data.