I am Ryan Florence. Ask me anything.

Ryan is Co-founder of React Training and creator of popular library React Router. He has been creating websites since the early 90’s, focusing primarily on the frontend for the past several years. He conceived React Router, which quickly became the most popular 3rd-party library built on React.

Ask Ryan Florence about:

  • ReactJS
  • React Router
  • Getting started with React
  • JavaScript
  • Contributing to OSS
  • Public Speaking
  • General Advice

Hey! Let's do this!

Ask a Question

75 discussions

It's been a year and a half since I started learning javascript (and programming at large). I've never made something end to end. It demoralises me. I think I take too much time to learn, and no matter how much I persevere, I seem to give up at the end. I have clear ideas, but I'm not able to put them in practice. Is it normal ? What could I do more smartly?

Show all replies

On it! 💛 Thanks Ryan!

Reply to this…

Share your programming knowledge and learn from the best developers on Hashnode

Get started

Component composition is great.

I love using render callbacks, but do you think that perhaps we can come up with a more natural syntax for this pattern?

I don't quite have an idea what it might look like yet, but may be something more fitting for xml/jsx-like syntax?

I'm wary of any new syntax for a specific pattern like that. If we did come up with something, would it apply to the the normal "event" or "action" prop callbacks?

<button onClick={() => /* not really different */}/>

I've found it feels less syntax-crazy when you use a prop named render instead goofing around with children.

<Thing render={() => (
  <div>More Stuff</div>
)}/>

// vs.

<Thing>
  {() => (
    <div>More Stuff</div>
  )}
</Thing>

That said, if you use children and skip JSX completely it's totally natural, it's just a normal looking callback:

fs.readFile(path, (err, data) => {
  // callback!
})

let e = React.createElement

e(Fetch, ({ error, data }) => (
  // callback!
))

I sometimes think I'd rather use e than JSX. Imagine this code block w/o JSX, would actually look pretty clean: https://github.com/ReactTraining/react-router/blob/master/website/modules/components/Environment.js#L42-L61

Reply to this…

How do you balance teaching and coding?

If you get too deep into one, you can no longer really do the other very well, right? Which do you find more fulfilling?

Show all replies

Indeed, having a popular OSS project definitely keeps you grounded in real world use cases. I can attest to that!

Reply to this…

When you tried Vue the other day, was there anything you saw that you wished was available in React? I know you love React, I give you props for trying out Vue. I'm one of the people who really like both.

I think vue appeals to a different audience and is a great fit for some teams. People say "right tool for the job" but the job is same, its more "right tool for the team".

Expressing UI as code instead of a template will work on some teams and be a disaster on others. In those cases, templates are perfect.

Reply to this…

I asked this in the Reactiflux AMA you did a long time ago, but what's the state of React30? It was my all-time favorite react podcast ☹️

Oh, Sean ... hard times.

Michael basically spearheaded that thing and we'd love to do it, but it's hard to make the time. Running a business, especially one that plans events, takes a lot of time. Also, we've both got spouses, kids (I have 3, he has 4), and community/church responsibilities. Mix in our travel schedules (we each travel 2 or 3 times per month) and we're just out of time for the podcast :(

We recorded one a few months ago but the guest was basically in a cafeteria and the audio quality was just too terrible. Maybe one day it'll come back, but at this point myHopes !== high.

Reply to this…

Load more responses