choojs / choo-handbook

🚂✋📖 - Learn the choo framework through a set of exercises

Home Page:https://handbook.choo.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

chapter overview

yoshuawuyts opened this issue · comments

commented

Which chapters should we write? How should they be ordered? Let's discuss it here. Anyone with push access should just update the section below so we can keep track as we write them. I'm like stuck in writing code so this is taking longer than I should; I reckon if we collaborate we can get there faster!


Index

  • introduction: welcome people to the repo in the name of all contributors. choo choo!; mention TCBY and link to tradeoffs between packages
  • reference: explain how to do specific things; probably what's mostly in the docs right now
    • reference: Actions:
      • action naming patterns
      • validating data
    • reference: Effects:
      • higher order composition
      • using pull-stream to compose
      • HTTP
      • testing
    • reference: Reducers:
      • testing
    • reference: Subscriptions:
      • keyboard
      • websockets
      • server sent events
    • reference: Router:
      • navigating using <a href="">
      • on-page navigation using anchor tags
      • hash routing
    • reference: Views:
      • explain how hyperx works
      • explain how yo-yoify works
      • explain how bel works
      • explain how morphdom and yo-yo work
      • lifecycles / widgetizing
      • function components
      • inline CSS
      • forms
    • reference: Servers:
      • server sent HTML choojs/nanohtml#29
      • server rendering (talk about tradeoffs, namely about cacheability)
      • combining HTML using hyperstream
      • caching HTML using bl
    • reference: optimizing builds: dive into the transforms and how to serve for production
  • guides: exact guides on how to build specific things; perhaps centered a common theme or smth?
    • guide: your first app: some sort of app in choo; guide people front-to-end
      • intro to browserify && show off budo ?
      • ... ehhh; create some static html and then make the rest of the app?
    • guide: wrapping for webcomponents: probably just one page
    • guide: react migration guide: translating react-speak to choo-speak
    • guide: choo + leaflet/mapbox.js: demonstrate basic usage of leaflet and/or mapbox.js with choo
    • guide: deploying choo: show examples of deploying to github pages, surge.sh, etc.
    • guide: choo & node:
      • choo & http servers
      • building a static site with choo

note: seriously, edit me


Probably the only constraints I'd have for writing style is trying to create an approachable style (e.g. add links to words; explain concepts; spell acronyms out the first time) and referring to people as people/they/them/their to like make assumptions on who they are. Perhaps this should be in a contributing section. Ah well - happy writing / updating / editing / tweaking! ✨

guide ideas:

  • choo + leaflet/mapbox.js
  • deploying to github pages, surge.sh, etc.
  • using choo in node
commented

@sethvincent yessss - add themmmmm ✨

The first question I had after following the first two chapters was how to achieve a react-like nested tree of components rather than a single template for each route. Is passing props / send to each component function like this a decent approach?

commented

@markbrown4 yeah, looking quite good to me - what I'd personally do different is not pass the full state (or props, in react land) object down, but pluck out only the relevant values as soon as possible - that way components become easier to break up, validate and reason about I reckon.

Any help with a React guide would be greatly appreciated by the way; it's been years since I've last done a project using React and I feel someone with more up to date knowledge might do it quicker and more accurately ✨

I guess inline CSS means sheetify. Of course choo-log and a "how to debug" would be interesting as well.

commented

I guess inline CSS means sheetify

Yeah, that's what I tend to use as I'm the author, but cxs is another interesting one for example - I think providing a general feel on how to solve problems + a brief overview of tooling is probably what adds most value for everyone involved - any sort of contribution with whatever tooling people like best would be greatly valued!

@markbrown4 check out #18 for a WIP guide @yoshuawuyts has been working on that addresses your question

Hi there, I'm a little curious about these:

  • Which part of the planning docs explain on routing parameters? (I've walked through the mailbox example, but it doesn't look clear in my point of view, because it seems to be composed with server on routing)
  • Any route middleware?
  • How to implement or create a plugin?
  • How about nested views? Data-flow between parent and children views?
  • Is there any special way to integrate third-party into app build? (ex. jQuery...)
  • Which part will explain about when it should validate to re-render view? (like in React, shouldComponentUpdate()