layout | title | id |
---|---|---|
default |
Release notes |
release-notes |
riot:
- Add: the option to block the riot automatic updates via
riot.settings.autoUpdate
more info riot/2377 - Fix: regex in <script> function breaks compiler riot/2369
riot-tmpl:
- Fix: incorrect regex that matches literal regexes
- Fix: use shared regex parser for browser and server versions
riot-compiler:
- Fix: various issues with literal regexes
riot-tmpl:
- Fix:
}
in output when expression contains)/
riot/2361
riot:
- Fix: inline DOM templates only work on top level tags riot/2359
- Fix: the result of
riot.version
is displayed as WIP riot/2352
riot:
- Add: enable the use of DOM inline templates more info riot/2296
- Add: easier svg sub tags support riot/2290
- Fix: better error message riot/2335
- Fix: show on nested tags prefers parent's context riot/2333
- Fix: attributes not updating in v.3.4.4 riot/2343
- Fix: bring back data-ref and ref riot/2348
riot-cli:
- Fix: fix rollup false positive warnings rollup-plugin-riot/89
riot:
- Fix: remove
ref
attributes avoiding to parse them twice riot/2329 - Fix: avoid to remove attributes for truthy properties riot/2331
- Fix: support for IE11 events handling riot/2332
riot:
- Fix: fair angular library size comparison riot/2325
- Fix: data-is works differently as expression to hard-coded attribute riot/2321
- Fix: scope differs between
if
andshow
riot/2125
riot-cli:
- Fix: error exception reporting cli/26
riot:
- Fix: "data-is" attribute is being removed if you mount on the same element riot/2317
- Fix: riot attributes remain in output riot/2316
riot:
- Fix: parent tag data-is is reset when disabling a nested tag with
if="...
riot/2311 - Fix: object is not valid in "show" anymore riot/2300
- Fix: undefined not handled as empty string (in tags) riot/2297
- Fix:
<div if="...">
containing<div data-is="...">
does not unmount tag properly riot/2307
riot:
- Fix:
riot-
prefixed attributes will be no longer prefixed in theopts
object riot/2103 - Fix:
Null
andundefined
expressions will be no longer converted into empty strings for the tag attributes riot/2080 - Fix: style attribute with expressions makes show directive invalid at the beginning riot/2178
- Fix: riot will not force all the expressions evaluating them as strings riot/2310
- Add: add support for
style
andclass
object expressions more info here and here
riot:
- Fix: tag root attributes out of sync riot/2280
- Fix: virtual tag doesn't work with each in server side rendering riot/2220
- Fix: using es6 classes mixins, some functions are lost riot/2219
- Fix: rendering issue with tag iteration/re-ordering riot/2271
- Fix: ES6 template literals forward slashes issue riot/2167
- Fix: re add the
riot.version
attribute - Improve: remove dead code
- Improve: increase code coverage to 100% 🎉
riot:
- Fix: shouldUpdate prevents every update riot/2118
riot-compiler:
- Fix: es6 template strings issue riot/2167
- Add: support for shortcut generator functions
* foo()
riot:
- Add: fine grain control over tag updates by passing nextOpts to
shouldUpdate
riot/2238
riot-compiler:
- Fix: es6
import
regex compatibility issues riot/2263 - Add: support for
async
shortcut methods riot/2195
riot:
- Fix: error when using virtual and update handler riot/2251
- Change: switch from plegie to opencollective as donation platform riot/2239
riot:
- Fix: disable the global mixins for the anonymous tags riot/2056
- Fix: setting selected attribute of multiple
<option>
tags in a multi select does not work properly riot/2247 - Fix: mount event not fired due to listener for wrong event riot/2249
- Add: the
riot.settings.skipAnonymousTags
flag more info - Improve: the looped tags rendering is ~30% faster than before mainly for the
anonymous
tags
riot:
- Fix: issue removing tags in a loop riot/2240
- Fix: tag root is not always in body when its mount event fires riot/1938
- Change: improve the rendering performance of the anonymous looped tags
riot-compiler:
- Fix: restore the support for the es6 in browser compilation using babel examples/51
riot:
- Fix: virtual tag is rendered when use a dynamic data-is riot/2208
- Fix: data-is attribute get removed from parent dynamic tag if child tag has yield riot/2211
- Fix: rollup server side (cjs) transpilation riot/2216 riot/2225 and riot/2224
- Fix: sorted list not displayed correctly riot/2228 riot/2205
- Fix: conditional
if
does not work as expected with select tag and dynamic options riot/2229 - Change: renamed the
_internal
tag property to__
, you shouldn't use them anyway - Change: avoid to expose the
_parent
property, it's now included in the__
key - Change: make the
isMounted
property not iterable and writable - Add: the experimental
riot.reload
API to handle hot module reload via webpack more info
riot-compiler:
- Fix: style tag get stripped from riot tag even if it's in a javascript string. riot/2210
riot-route:
- Add: tag based router riot-route/80 more-info
riot:
- Fix: hot fix Broke if/each combination riot/2207
riot:
- Fix: inconsistencies between the
show
,hide
andif
directives riot/2158 - Fix:
import riot from 'riot'
using webpack and babel riot/2091 - Fix: loop sorting issue riot/2205
- Fix: issue using dynamic
data-is
attributes riot/2175 - Fix:
if
directive in object loops riot/2133 - Fix: serverside rendering on Windows machines riot/2131
riot:
- Fix: internal
parent
attribute should be protected from external override riot/2154 - Fix: selected on
<select><option>
doesn't seem to work right on riot 3 riot/2164
riot:
- Fix: restore the
show/hide
behavior riot/2156
riot:
- Fix: mount and unmount css injection performances riot/2152
- Fix: different scope between
show
,hide
andif
riot/2125 - Add:
data-src
to fetch riot tags avoiding browsers prefetching riot/2132 - Remove: support for SPM riot/2124
riot:
- Fix: when using riot-viewBox inside an svg tag it is replaced by viewbox. riot/2086
- Fix: tag mounted with data-is="{some expression}" is not updating riot/2102
- Fix: attributes are not removed when other tag without attributes is mounted on an element riot/2098
- Remove: removes SPM support riot/2124
riot-tmpl:
- Change: avoid to use
console.error
if a user has defined already a custom error function riot/2108 - Change: prefer lowercase to debug tags names
riot-compiler:
- Change: internal regex to support the
@apply rule
provided by css preprocessors
riot-route:
- Fix: router with query param not working riot-route/74
- Fix: remplate literals break IE riot-route/77
riot:
- Fix: riot@3.0.0 should export default riot/2084
- Fix: class does not remove when value becomes false riot/2082
- Fix: auto update input values after edited it with User riot/2096
- Fix: error when unmount tag that contains ref element riot/2083
- Fix: error toggling child with multiple mixins riot/2100
- Fix: toggling 'if' of 'data-is' tag creates new reference in parents 'tags' object riot/2089
It has been a long journey but in the end we made it and riot@3.0.0 is finally out and it represents a step forward compared to riot 2 for stability, performances and flexibility.
List of improvements and breaking changes
riot:
- Change: build riot using rollup+babel instead of smash using only es6 modules syntax
- Change: clean up the tests (we use 371 tests!) splitting them into several files written in es6 and we switched to chai.js replacing expect.js
- Change: improve the loop performances, now the update method is much faster than before.
- Change: deprecate
riot-tag
in favor ofdata-is
- Change: use the
ref
attribute instead ofname
andid
riot/1185 (breaking change) - Change: remove riot-route from the core making it optional riot/1485 (breaking change)
- Change: avoid that the update and the updated events get triggered before any tag has been mounted riot/1661 (breaking change)
- Change: different approaches in iterable objects in different contexts of "each - in" riot/1420 (breaking change)
- Add: support for es6 classes to create tags more info
- Add: the
shouldUpdate
method to the tags to emulate componentShouldUpdate in react - Remove: the __ prefix for the "boolean" html attributes riot/276
- Remove: the automatic preventDefault from the riot DOM events riot/1770 riot/1718 riot/526 (breaking change)
- Fix: all the issues related to the if conditions riot/1477 riot/1658
- Fix: avoid to inherit properties from the parent in loops of custom children tags riot/1697
- Fix: avoid to update the parent tag on the events generated from a child tags riot/1319 (breaking change)
- Fix: arrays with multiple tags of the same name don’t contain actual tag elements riot/2061
- Fix: the data-is attribute is not updated for dynamic tags riot/2037
- Fix: virtual with each doesn't remove tag references from parent tag riot/2029
- Fix: each and switching between object and array riot/2027
- Fix: properties set in looped custom tag element event seem to be cleared by parent update riot/2019
- Fix: riot+compiler.js:1245 Uncaught NotFoundError: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node - when adding to an 'each' structure from a recursively created element onlick riot/1962
- Fix: input numbers leave unprocessed expressions after upgrade to 2.6.0 riot/1957
- Fix: memory leak riot/1955
- Fix:
require(*tag-name*)
does not allowparserOptions
riot/1935 - Fix: clear riot tag cache to aid with testing riot/1875
- Fix: 'before-mount' won't work as expected in riot#render riot/1851
- Fix: the logic is not work with if and class together riot/1769
- Fix: should we add a updateSelf() API? riot/1748
- Fix: virtual elements disappear after tag update riot/1659
- Fix: can I use the bool attribute with the custom tag? (like "disabled") riot/1618
- Fix: extra expression evaluation when using attributes riot/1590
- Fix: eS6 class syntax with child tags riot/1451
- Fix: different approaches in iterable objects in different contexts of "each - in" riot/1420
- Fix: support conditions with virtual tag riot/139
- Fix: riot-tag as expression in loop riot/1368
- Fix: all treeitem tag have children riot/1361
- Fix: method for clearing compiler state riot/1236
- Fix: dynamically loaded child tags don't get into the parents tags object riot/1174
- Fix: [Q] Child tags counts not matched? riot/1088
- Fix: inconsistent tags behaviour with 1 item vs many riot/936
- Fix: no way to override name attribute on e.g. <input>s to prevent overriding existing properties on
this
riot/715
riot-observable:
- Remove: support for spaced events,
el.on('foo bar')
becomesel.on('foo').on('bar')
(breaking change) - Fix: optimize speed x6 faster than before
riot-tmpl:
- Change: template errors will be always output via
console.error
if the console api is available (breaking change)
riot-compiler:
- Fix: allow the es6 import also inside the tags compiler/69
- Fix: all the
value
attributes using expressions will be output asriot-value
to riot#1957 - Change: css generated via riot-compiler will be always scoped (breaking change)
- Deprecate: old
babel
support, now thees6
parser will use Babel 6 by default (breaking change)
Many thanks to all the riot community and to all our users who have really helped us making the best decisions to improve this framework. Special thanks go to @rogueg for his great work on the riot source code and he is now part of the riot core team. Thanks also to the other core contributors and collaborators for the hard work on this project you are awesome.
@tipiirai is working on a brand new riot release experimenting new rendering strategies and big core improvements that will be part of riot@4.0.0
For the next releases we will mainly focus on improving the initial rendering performances riot/2034. We will try to bring the compiler sourcemaps and a better support for hot modules replacement stay tuned!