- finish directives
- better list diffing
- ordered directives init (:each + :if vs :if + :each) -> find out if really needed and which is faster -> yes, needed and solve many init issues.
- [?] autoinit -> too much maintenance burden
- node tests
- better deps updating -> cumulative signal
- combinations: :else :if
- :each :if, :if :each
- :each :each
- :with must be able to write state value as well
- docs: give example to each directive
- initialize per-element: - tree-dependent (:each comes first).
- generalize common attributes :prop="xyz"
- spread props
- optimization: arrays with multiple elements can be slow on creation. Maybe signal-struct must ignore arrays.
-> yep: arrays are rarely changed as
a[i]=newItem
and regularly they're mapped. - expand to any subscribables: both as state vars
- :ref
- :ref + :each
- event chains :ona-onb
- bulk events :ona:onb
- multiprop setter
🅰️ b="c" - make
this
in expression an element[x] replace :ref with :with="this as x"
- :ref creates instance in current state, not creates a new state
- to avoid extending signal-struct, we must collect state data before, and call updates after for extended state
- optimization: replace element-props with direct (better) setters
- Make sure
false
gets serialized, not removes attr
- Make sure
- Sandbox expressions: no global, no "scope" object name, no "arguments"
[x] report usignal problemauthor is not really interested-
this
doesn't refer to element/scope in event handlers - :text="" empty values shouldn't throw
- implement :with
- update :value without losing focus / position
[x] run tiredown if element got removed from condition or loop (free memory)no need just make sure no refs to elements stored-
sprae(el, newState)
can update element's state directly (as batch!?) -> must be tested against repeats in directives - :if :ref, :if :with -> context setters must come first always
- :style="{'--x':value}"
- :onkeydown.ctrl-alt-D
- examples
- todomvc
- waveplay
- evt modifiers
- once, capture, passive
- ...rest
- parallel chains
- Sandbox
- Autorun
- There's some bug with prostogreen not triggering effect. (caused by special array.length case)
- Getters must become evaluable
-
<li :each="item in items" :with="{collapsed:true}"><button :onclick='e=>collapsed=false'></li>
-
nah, it's fine:with="{likes:[], like(){ /* likes should not be undefined here */ }}"
- Reduce memory leak - via jsbenchmark example
- make disposers
- make sure internals are disposed as well
- frameworks benchmark -> contrib to krausest
- fix swapping rows error
- make use of actual swapdom
- fix removing last row issue
- optimization:
- faster create rows
- faster replace all rows
- fix remove row perf issue
- Make signals-proxy state actually lazy-init (now it's not)
- Fix multiple
.push
cycle problem -
Make regular proxy state not causing infinite recursionwe don't hold to own proxy now - All FIXMEs
- Avoid creating signals for static values