Hi Jiyin Yiyong, nice to see some alternatives to React in Clojure! I have to dig more into your blog posts to understand your ideas but it definitively looks interesting. May I suggest to have some documentation/examples in raw ClojureScript to help people grasp the syntax?
You might also be interested in some libraries I wrote: * https://github.com/jeluard/hipo create/reconciliate DOM nodes from hiccup syntax * https://github.com/jeluard/lucuma CustomElements boilerplate * https://github.com/jeluard/picada a collection of google material elements, built on both former libraries (WIP) Julien Le jeu. 21 avr. 2016 à 12:13, Jiyin Yiyong <jiyinyiy...@gmail.com> a écrit : > I want to see if anyone is already getting bored about React.js like me. > It's still fun to try React Native but React.js is old, its 2012 > technology(not quite sure about 2012, but old enough even 2013). React is > not nicely decoupled, and not a great framework for animations. It's > becoming as useful and as mature like jQuery. I think we can go beyond. > > Well, I've been programming for 5 years only from learning C in school and > trying Python on my own(not counting course on Visual Basic since it was > only a course). I can't build a whole framework like React. However, I can > see some vision ahead and try them with my code. So they are Respo and > Quamoit. Both are experimental project and in early stages(Docs not ready, > sorry for that). Just hope they may be sources of inspirations. > > Respo > > repo https://github.com/mvc-works/respo/ > example app https://github.com/Memkits/wanderlist/ > > Respo is like React but a lot simplified and decoupled. I implemented a > simpler DOM diff algorithm and bound events. By now I can build very simple > apps with it. I think the shiny parts are: > > * components are designed to fit with caching so that server side > rendering would be faster > * DOM diff/patching are decoupled, so possible to diff on server and patch > at clients > * element DSL in ClojureScript syntax, not JSX style > * component states are stored global, so not losing during hot swapping > > You may find more on Hashnode and Youtube: > https://hashnode.com/@jiyinyiyong/stories > https://www.youtube.com/user/jiyinyiyong/videos > > Quamolit > > repo(alse example) https://github.com/Quamolit/quamolit > components source code > https://github.com/Quamolit/quamolit/tree/master/cirru-src/quamolit/component > > Quamolit is an experiment on canvas and it relies on Hit Regions APIs to > work, so not even usable for build real apps. The nice thing is, in React > it's difficult to make nice animations, in declarative canvas libraries > there's no abstractions to compose components like React, Respo is maybe a > way to combine them. You can browse the source code and take a look on my > Youtube. > > For each component, there's functions of `init-state update-state > init-instant on-tick on-update on-unmount render`, you may see what's going > on by the names. So besides **state**, Quamoit introduced **instant** as > the animations states, and it will be updated by **on-tick**(as > requestAnimationFrame calls) **on-update**(as global store and states > changes) **on-unmount**(as the component start leaving). > > Currently there are only videos and tweets(@jiyinyiyong) on Quamolit. I > will add post when it's more stable. > > Projects are in early stage and when I go back to work a weeks later I > will probably spend much time on them. I think my experience is not enough > for real world frameworks, I hope someone may pick my ideas and use them in > their own projects. I used to write in Chinese at > segmentfault.com/blog/jiyinyiyong and I will later write on Hashnode in > English to see if someone is interested. > > Hope you like my ideas. Thanks. > > -- > Note that posts from new members are moderated - please be patient with > your first post. > --- > You received this message because you are subscribed to the Google Groups > "ClojureScript" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojurescript+unsubscr...@googlegroups.com. > To post to this group, send email to clojurescript@googlegroups.com. > Visit this group at https://groups.google.com/group/clojurescript. > -- Note that posts from new members are moderated - please be patient with your first post. --- You received this message because you are subscribed to the Google Groups "ClojureScript" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojurescript+unsubscr...@googlegroups.com. To post to this group, send email to clojurescript@googlegroups.com. Visit this group at https://groups.google.com/group/clojurescript.