Moving to 0.3.0 due to the amount of change between 0.2.0-beta2 and 0.2.0-beta3.
Adding ‘on-mount’ lifecycle callback
Couple of bugfixes - f/root
now clears the container, and
f/keyed-at
now works with lazy-seqs.
Change to use f/keyed-at
function (rather than ^::f/pk
on the
meta) to let Flow know of the PK of a collection.
Many more bugfixes and performance optimisations
The 0.2.x branch was abandoned - after the big re-write between beta2 and beta3 I decided that it was probably best to bump the version to 0.3.0, and start again with SNAPSHOTs/alphas.
Performance improvements + bug fixes
No breaking changes.
Performance improvements - ensuring that all of our caching works
No breaking changes.
Bug in f/on - fixed.
No breaking changes
Complete re-write from 0.2.0-beta2 - massive simplification of the internal workings.
One breaking change from b2: sub-components now need to be ‘called’ with vectors, rather than parens:
(defn render-list-item [elem]
(f/el
[:li elem]))
(defn render-list [coll]
(f/el
[:ul
(for [elem coll]
;; previously: (render-list-item elem)
[render-list-item elem])]))
Bugfix to macro-expansion stage - needs to be a prewalk rather than a postwalk
Lots of documentation and tutorials.
Also, more bugfixes.
More minor bugfixes as a result of using Flow in other projects
Minor typo. :(
Minor bugfix - lens atoms weren’t being updated when their parent atoms changed.
Added:
- Read-Write support for lenses
- Batching of updates
- Using
requestAnimationFrame
if available
Still to do:
- Docs
- Sample apps
- Even more copious testing
Complete re-write of the Flow library (it’s probably best thought of as a different library tbh!)
Flow is now a compiled DSL - the compiler analyses all of the
dependencies at compile-time, and only updates what is necessary at
run-time. The new DSL is a lot more expressive than the old let<<
/
for<<
combination.
Still missing before I can go to 0.2.0:
- Updated docs
- Updating sample apps
- Currently only read-only wrapped lenses
- Copious testing
A big thanks to Luke Snape for all his help in design/implementation discussions - it really helped in getting my head around all of this!
Initial release - thanks to Henry Garner, Mathieu Gauthron, Nathan Matthews and Malcolm Sparks, whose advice and feedback made it happen.