SlideShare a Scribd company logo
1 of 14
Download to read offline
Uvod u React
03/11/2016
Goran Gajic
twitter.com/golenull
github.com/gorangajic
Deklarativan
Opišete kako vaš interfejs izgleda i u svakom
trenutku tako će i izgledati
Bazira se na Komponentama
- Kockice za pravljenje vase aplikacije
- Lako se sklapaju
- Jednostavno se koriste
- Izmene su lakse, zato sto su promene
izolovane po komponentama
Dostupan
- Radi u vasoj postojećoj aplikaciji
- Radi na serveru
- Uz pomoć react-native pišete mobilne
aplikacije
JSX
- JSX je nadogradnja na JavaScript
- Sva moć JavaScripta, bez uvođenja novog jezika
- Nije neophodan, ali olakšava posao
- Ponaša se kao i HTML, JSX ima ime taga, attribute i
svoju decu.
JSX
class Hello extends React.Component {
render() {
return <h1> Hello World </h1>;
}
}
class Hello extends React.Component {
render() {
return React.createElement(
"h1", null, "Hello World"
);
}
}
rendering
class Message extends React.Component {
render() {
return (<div className="message">
<Avatar username={this.props.user} size="large" />
<ChatMessage>
{this.props.message}
</ChatMessage>
</div>);
}
}
state
class Hello extends React.Component {
constructor(props) {
super(props);
this.state = {
open: false,
}
}
componentDidMount() {
this.setState({ open: true });
}
...
props
class Chat extends React.Component {
...
render() {
return (<div className="chat">
<MessagesList messages={this.state.messages} />
<ChatInput onChange={(message) => this.addMessage(message)} />
</div>);
}
....
}
Events
class ChatInput extends React.Component {
render() {
return (<div className="form-inline">
<input
value={this.state.message}
onChange={(e) => this.setState({ message: e.target.value })}
/>
<button onClick={() => this.saveMessage()}>
Send
</button>
</div>);
}
}
React DOM
Biblioteka koja je zadužena za prikaz vaših komponenti na stranici
ReactDOM.render(
<App />,
document.getElementById('root')
);
Alati
- Node.js
- npm
- Babel
- Webpack
Create react app
npm install -g create-react-app
create-react-app moja-aplikacija
cd moja-aplikacija/
npm start
Demo

More Related Content

What's hot (20)

webpack 101 slides
webpack 101 slideswebpack 101 slides
webpack 101 slides
 
React & Redux
React & ReduxReact & Redux
React & Redux
 
Important React Hooks
Important React HooksImportant React Hooks
Important React Hooks
 
React lecture
React lectureReact lecture
React lecture
 
An Introduction to Redux
An Introduction to ReduxAn Introduction to Redux
An Introduction to Redux
 
Redux workshop
Redux workshopRedux workshop
Redux workshop
 
What Is Virtual DOM In React JS.pptx
What Is Virtual DOM In React JS.pptxWhat Is Virtual DOM In React JS.pptx
What Is Virtual DOM In React JS.pptx
 
React web development
React web developmentReact web development
React web development
 
React Js Simplified
React Js SimplifiedReact Js Simplified
React Js Simplified
 
Node.js Express
Node.js  ExpressNode.js  Express
Node.js Express
 
React Context API
React Context APIReact Context API
React Context API
 
Understanding react hooks
Understanding react hooksUnderstanding react hooks
Understanding react hooks
 
Introduction to React JS
Introduction to React JSIntroduction to React JS
Introduction to React JS
 
Its time to React.js
Its time to React.jsIts time to React.js
Its time to React.js
 
Webpack slides
Webpack slidesWebpack slides
Webpack slides
 
Benefits of developing single page web applications using angular js
Benefits of developing single page web applications using angular jsBenefits of developing single page web applications using angular js
Benefits of developing single page web applications using angular js
 
Node JS Crash Course
Node JS Crash CourseNode JS Crash Course
Node JS Crash Course
 
React js programming concept
React js programming conceptReact js programming concept
React js programming concept
 
reactJS
reactJSreactJS
reactJS
 
Introduction to React
Introduction to ReactIntroduction to React
Introduction to React
 

Uvod u react

  • 1. Uvod u React 03/11/2016 Goran Gajic twitter.com/golenull github.com/gorangajic
  • 2. Deklarativan Opišete kako vaš interfejs izgleda i u svakom trenutku tako će i izgledati
  • 3. Bazira se na Komponentama - Kockice za pravljenje vase aplikacije - Lako se sklapaju - Jednostavno se koriste - Izmene su lakse, zato sto su promene izolovane po komponentama
  • 4. Dostupan - Radi u vasoj postojećoj aplikaciji - Radi na serveru - Uz pomoć react-native pišete mobilne aplikacije
  • 5. JSX - JSX je nadogradnja na JavaScript - Sva moć JavaScripta, bez uvođenja novog jezika - Nije neophodan, ali olakšava posao - Ponaša se kao i HTML, JSX ima ime taga, attribute i svoju decu.
  • 6. JSX class Hello extends React.Component { render() { return <h1> Hello World </h1>; } } class Hello extends React.Component { render() { return React.createElement( "h1", null, "Hello World" ); } }
  • 7. rendering class Message extends React.Component { render() { return (<div className="message"> <Avatar username={this.props.user} size="large" /> <ChatMessage> {this.props.message} </ChatMessage> </div>); } }
  • 8. state class Hello extends React.Component { constructor(props) { super(props); this.state = { open: false, } } componentDidMount() { this.setState({ open: true }); } ...
  • 9. props class Chat extends React.Component { ... render() { return (<div className="chat"> <MessagesList messages={this.state.messages} /> <ChatInput onChange={(message) => this.addMessage(message)} /> </div>); } .... }
  • 10. Events class ChatInput extends React.Component { render() { return (<div className="form-inline"> <input value={this.state.message} onChange={(e) => this.setState({ message: e.target.value })} /> <button onClick={() => this.saveMessage()}> Send </button> </div>); } }
  • 11. React DOM Biblioteka koja je zadužena za prikaz vaših komponenti na stranici ReactDOM.render( <App />, document.getElementById('root') );
  • 12. Alati - Node.js - npm - Babel - Webpack
  • 13. Create react app npm install -g create-react-app create-react-app moja-aplikacija cd moja-aplikacija/ npm start
  • 14. Demo