Skip to content

Latest commit

 

History

History
69 lines (69 loc) · 3.21 KB

todo.md

File metadata and controls

69 lines (69 loc) · 3.21 KB
  • 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
  • Sandbox expressions: no global, no "scope" object name, no "arguments"
  • [x] report usignal problem author 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>
  • :with="{likes:[], like(){ /* likes should not be undefined here */ }}" nah, it's fine
  • 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 recursion we don't hold to own proxy now
  • All FIXMEs
  • Avoid creating signals for static values