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 clojurescrip...@googlegroups.com.
To post to this group, send email to clojur...@googlegroups.com.
Visit this group at https://groups.google.com/group/clojurescript.
You received this message because you are subscribed to a topic in the Google Groups "ClojureScript" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojurescript/3AojzHsh3u0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojurescrip...@googlegroups.com.