Leave a comment to add a project you've created or found!
Hi Nicholas,
I saw you tweet about JSX yesterday. It seemed like the discussion devolved pretty quickly but I wanted to share our experience over the last year. I understand your concerns. I've made similar remarks about JSX. When we started using it Planning Center, I led the charge to write React without it. I don't imagine I'd have much to say that you haven't considered but, if it's helpful, here's a pattern that changed my opinion:
The idea that "React is the V in MVC" is disingenuous. It's a good pitch but, for many of us, it feels like in invitation to repeat our history of coupled views. In practice, React is the V and the C. Dan Abramov describes the division as Smart and Dumb Components. At our office, we call them stateless and container components (view-controllers if we're Flux). The idea is pretty simple: components can't
| var webpack = require('webpack'); | |
| var HtmlWebpackPlugin = require('html-webpack-plugin'); | |
| var path = require('path'); | |
| var folders = { | |
| APP: path.resolve(__dirname, '../app'), | |
| BUILD: path.resolve(__dirname, '../build'), | |
| BOWER: path.resolve(__dirname, '../bower_components'), | |
| NPM: path.resolve(__dirname, '../node_modules') | |
| }; |
This is no longer needed as Emmet supports JSX - you just need to turn it all on. Did a quick tutorial: http://wesbos.com/emmet-react-jsx-sublime/
Thanks, @wesbos
- Using emmet in jsx files
- Emmet expands text when js autocomplete needed
| students = [ # Array of students' names. | |
| "Alex Hint", | |
| "Amy Ruan", | |
| "Ana Giraldo-Wingler", | |
| "Cooper Mayne", | |
| "Diego Palma", | |
| "Edward Shin", | |
| "Enoch Riese", | |
| "Harrison Powers ", | |
| "Jaclyn Jimenez", |
| # _ _ __ _ _ | |
| # | |__ __ _ ___| |__ _ __ _ __ ___ / _(_) | ___ | |
| # | '_ \ / _` / __| '_ \ | '_ \| '__/ _ \| |_| | |/ _ \ | |
| # | |_) | (_| \__ \ | | | | |_) | | | (_) | _| | | __/ | |
| # |_.__/ \__,_|___/_| |_| | .__/|_| \___/|_| |_|_|\___| | |
| # |_| | |
| # When Bash starts, it executes the commands in this script | |
| # http://en.wikipedia.org/wiki/Bash_(Unix_shell) |
| ############## | |
| ### Benchmarks | |
| ############## | |
| require 'benchmark' | |
| # http://www.ruby-doc.org/stdlib-1.9.3/libdoc/benchmark/rdoc/Benchmark.html | |
| # http://rubylearning.com/blog/2013/06/19/how-do-i-benchmark-ruby-code/ | |
| # http://stackoverflow.com/questions/556405/what-do-real-user-and-sys-mean-in-the-output-of-time1/556411#556411 | |
| iterations = 100_000 # How many times to test? |
| # ./Procfile | |
| web: bundle exec puma -p $PORT -C ./config/puma.rb |