MithrilJS / mithril.js

A JavaScript Framework for Building Brilliant Applications
https://mithril.js.org
MIT License
14.02k stars 925 forks source link

Rewrite Status #1090

Closed tivac closed 7 years ago

tivac commented 8 years ago

Let's have a single place to track the rewrite status!

(As best as I can figure it at least, some things are still just stored in @lhorie's head :smile:)

Alpha

Beta

NOTE: This isn't an issue for discussing API design/rewrite bugs/etc, those should happen in their own more focused issues.

dead-claudia commented 8 years ago

@tivac @lhorie I added a Rewrite milestone to help better categorize things, and I've added them to several existing issues. Welcome.

lhorie commented 8 years ago

Update: major breaking change: promises are now gone in favor of streams. See docs for m.prop for more details on how streams work

nordfjord commented 8 years ago

@lhorie would love to see more "Array" methods on the streams.

e.g. forEach, filter, reduce

let userStream = m.prop()
  .filter(user => user.isVisibleOnline)
  .forEach(user => {
    displayUserLoginPopup(user);
  });

subscribeToUserChannel(userStream);
tinchoz49 commented 8 years ago

Yes i aggree with @nordfjord and maybe if the streams has an API compatible for example with the flyd streams we can extend the methods using their modules (filter, lift, flatmap...) without increase the size and the API stream functions in mithril.

BTW: great idea add the stream support. :+1: :rocket:

darsain commented 8 years ago

@lhorie if it's a breaking change already, why make it ambiguous by still calling it m.prop? Just name it m.stream :)

dead-claudia commented 8 years ago

@darsain It's still mostly the old m.prop. Just instead of incorporating itself with Promises, it's incorporating itself into the Streams world (which also helps observability).

pietermartin commented 8 years ago

Any more info regarding the status of the rewrite. We are planning on rewriting a large Angular 1 app and Mithril looks great but alas the status?

lhorie commented 8 years ago

@pietermartin it's currently at release candidate 2

lhorie commented 7 years ago

update: taking these out:

- [ ] #618 - ES6 classes as components
- [ ] `m.startComputation()` & `m.endComputation()`
kylebakerio commented 7 years ago

Migration guide link is dead. link to docs for m.prop discussing breaking change to streams is dead.

tivac commented 7 years ago

Closing this as rewrite status is being tracked by the milestone now.

gyandeeps commented 7 years ago

"IE perf improvements" was marked done but I don't see it in the code. Am I missing something or was it dropped from the plan?

tivac commented 7 years ago

@gyandeeps Hmm, might've gotten lost in a re-shuffle. Would you be willing to open a new PR? 😞

gyandeeps commented 7 years ago

@tivac I am loaded with work currently, i can when i get some time but meanwhile if somebody else wnat to do it feel free.

More details:

Here is the previous PR: https://github.com/lhorie/mithril.js/pull/1016 Issue comment: https://github.com/lhorie/mithril.js/issues/199#issuecomment-210110023

This should give enough information.

Theme: Add the element to its parent before you add its children to it. this has perf imrovments on IE engines.

gyandeeps commented 7 years ago

@tivac Spent some time today to get this work: https://github.com/lhorie/mithril.js/pull/1598

lhorie commented 7 years ago

added some love for @gyandeeps : http://mithril.js.org/credits.html