ga-react-tutorial

  • 所有者: goopscoop/ga-react-tutorial
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

Setup (Before Class)

Make sure you have the following tools:

  • A Mac computer (Linux and Windows welcome, but I'll be able to offer very limited support if any issues pop up, especially with Windows)
  • An IDE (Sublime, Atom, VIM or something similar)
  • Google Chrome or FireFox
  • Node.js installed

Steps to take before class

If you don't have Node.js installed

If you've already installed node, you can skip this step.

  • Visit https://nodejs.org/en/ and download node 4.2.4 (or the latest version of 4.x.x). Don't download version 5.x.x unless you know what you're doing.
  • Open the installer and follow the instructions.

Once node is installed

  1. Clone this repo, then in terminal enter the following commands
  2. git clone git@github.com:goopscoop/ga-react-tutorial.git
  3. cd ga-react-tutorial
  4. npm install
  5. npm start
  6. In your web browser, enter the url http://localhost:8080/webpack-dev-server/#/.
  • You should see a bar at the top of the page that says "App ready." Below that, it'll say "Hello General Assembly. Welcome to React". If you see this, you're ready for class.
  • If you don't see this, please let me know at the beginning of class.
  • If you feel adventurous, go ahead and poke around the files. Most of what you'll find is general boilerplate that will make your dev experiance nicer.

Continued Ed Links

React

Virtual DOM

JSX

JSX is the HTML looking code that you'll find within the render method (and sprinkled throughout other custom methods) in React. While it looks like HTML, it's actually just JavaScript.

Example

// JSX
<h1 className="heading">Hello, world! I am an H1.</h1>

// Compiles to this
React.createElement('h1', {className: "heading"},
    "Hello, world! I am an H1."
)

Flux (old) and Redux (new) - (Advanced Data Handling)

###Flux

Flux is a data handling methodology created by Facebook for React. One of the best implementations of Flux come in the form of Flummox. However, the React community is starting to move away from Flux towards a new data handling methodology called Redux.

Learn more about Flux:

Redux

Many Flux implementations are slowly being abandoned for the new Redux methodology. In fact, the creator of Flummox has joined the Redux team. This is new tech and not as widely documented as Flux, so it has a steeper learning curve. However, it appears to be the way data handling is headed for React (as well as many other frameworks).

Learn more about Redux

ES6 (ES2015)

ES6 aka ES2015 is the newest itteration of JavaScript that comes packaged with a lot of handy new features. Some of my favorites include new variable types (let and const), arrow functions () => {}, spread opperators {...props}, destructuring cosnt {thing1, thing2, thing3} = object, and a bunch of other useful features. Well worth looking into.

React Router (may not cover in class)

React Router is a package used by most React Single Page Apps. It's easy to use and written in JSX syntax.

Here's an example of how you would set up routes with the completed app we build in the workshop:

import { Router, Route, hashHistory } from 'react-router'


const store = configureStore();

class App extends React.Component {
  render(){
    return(
      <Provider store={store}>
        <Router history={hashHistory}>
          <Route path="/" component={ToDoApp}/>
          <Route path="/foo" component={Bar}/>
        </Router>
      </Provider>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('app'));

Webpack

Webpack is a very complicated but useful bundler. It allows for things like hot reloading, import, export, etc. Webpack is set up by a single webpack.config.js file/

Other

主要指标

概览
名称与所有者goopscoop/ga-react-tutorial
主编程语言JavaScript
编程语言HTML (语言数: 2)
平台
许可证MIT License
所有者活动
创建于2015-12-27 19:15:48
推送于2018-01-10 06:13:19
最后一次提交2017-11-07 10:20:06
发布数0
用户参与
星数139
关注者数7
派生数50
提交数27
已启用问题?
问题数1
打开的问题数1
拉请求数5
打开的拉请求数2
关闭的拉请求数2
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?