SlideShare a Scribd company logo
1 of 52
Download to read offline
Intro to React
Mariusz Wieczorkiewicz
Marek Mitis
controllers
Services
templates
models
Controllers
Services
templates
models
COMPONENTS
REACT === COMPONENTS
Virtual DOM <=> DOM(Document Object Model)
Data Flow and Components Structure
First app
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<AppRoot />,
document.getElementById('root')
);
First app
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<AppRoot />,
document.getElementById('root')
);
Main component
First app
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<AppRoot />,
document.getElementById('root')
);
Node managed by React DOM
First app
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<div>Hello</div>,
document.getElementById('root')
);
First app
import React from 'react';
import ReactDOM from 'react-dom';
ReactDOM.render(
<AppRoot />,
document.getElementById('root')
);
“ReactDOM is the glue
between React and the
DOM”
Example component
import React from 'react';
export function TodoApp() {
return (
<h1>Learn React</h1>
);
}
export default TodoApp;
Example component
import React from 'react';
export function TodoApp() {
return (
<h1>Learn React</h1>
);
}
export default TodoApp;
function
Example component
import React from 'react';
export function TodoApp() {
return (
<h1>Learn React</h1>
);
}
export default TodoApp;
import React from 'react';
export class TodoApp extends React.Component {
render() {
return (
<h1>Learn React</h1>
);
}
}
export default TodoApp;
function
Example component
import React from 'react';
export function TodoApp() {
return (
<h1>Learn React</h1>
);
}
export default TodoApp;
import React from 'react';
export class TodoApp extends React.Component {
render() {
return (
<h1>Learn React</h1>
);
}
}
export default TodoApp;
classfunction
Example component
import React from 'react';
export function TodoApp() {
return (
<h1>Learn React</h1>
);
}
export default TodoApp;
import React from 'react';
export class TodoApp extends React.Component {
render() {
return (
<h1>Learn React</h1>
);
}
}
export default TodoApp;
classfunction
===
export function TodoApp() {
return (
<h1>Learn React</h1>
);
}
XML???
JSX
Compilation
function TodoApp() {
return (
<h1 className="main-header">
Learn React
</h1>
);
}
function TodoApp() {
return React.createElement(
"h1",
{className: "main-header"},
"Learn React"
);
}
compilation
Props
function TodoApp({task}) {
return (
<h1>{task}</h1>
);
}
Props
function TodoApp({task}) {
return (
<h1>{task}</h1>
);
}
<TodoApp task={"Learn React"}/>
class TodoApp extends React.Component {
render() {
return (
<h1>{this.props.task}</h1>
);
}
}
<TodoApp task={"Learn React"}/>
Props are immutable
class TodoApp extends React.Component {
render() {
this.props.task = 'New task';
return (
<h1>{this.props.task}</h1>
);
}
}
Props are immutable
class TodoApp extends React.Component {
render() {
this.props.task = 'New task';
return (
<h1>{this.props.task}</h1>
);
}
}
Props are immutable
class TodoApp extends React.Component {
render() {
this.props.task = 'New task';
return (
<h1>{this.props.task}</h1>
);
}
}
State
class TodoApp extends React.Component {
constructor(props) {
super(props);
this.state = {
task: 'Learn React'
}
}
render() {
return (
<h1>{this.state.task}</h1>
);
}
}
State
class TodoApp extends React.Component {
constructor(props) {
super(props);
this.state = {
task: 'Learn React'
}
}
render() {
return (
<h1>{this.state.task}</h1>
);
}
}
State is mutable
addNewTask() {
this.setState({
task: 'My new task'
});
}
State is mutable
addNewTask() {
this.setState({
task: 'My new task'
});
}
setState is asynchronous
addNewTask() {
this.setState({
task: 'My new task'
}, function() {
this.sendTask(this.state.task);
});
}
Events
addTask(e) {
...
}
render() {
return (
<form onSubmit={this.addTask}>
...
</form>
);
}
Events
addTask(e) {
...
}
render() {
return (
<form onSubmit={this.addTask}>
...
</form>
);
}
Events
addTask(e) {
e.preventDefault();
...
}
render() {
return (
<form onSubmit={this.addTask}>
...
</form>
);
}
Events
addTask(e) {
e.preventDefault();
...
}
render() {
return (
<form onSubmit={this.addTask}>
...
</form>
);
}
stops the default action of an element
Child component
import TodoList from './TodoList';
export class TodoApp extends React.Component {
render() {
return (
<div>
...
<TodoList items={this.state.items} />
</div>
);
}}
Child component
import TodoList from './TodoList';
export class TodoApp extends React.Component {
render() {
return (
<div>
...
<TodoList items={this.state.items} />
</div>
);
}}
Render multiple components
render() {
return (
<ul>
{this.props.items.map((item) => {
return (
<li key={item.id}>{item.text}</li>
)
})}
</ul>
)
}
Render multiple components
render() {
return (
<ul>
{this.props.items.map((item) => {
return (
<li key={item.id}>{item.text}</li>
)
})}
</ul>
)
}
This way React can
handle the minimal DOM
change.
The component lifecycle
constructor()
componentWillMount()
render()
componentDidMount()
componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
componentWillUnmount()
The component lifecycle
constructor()
componentWillMount()
render()
componentDidMount()
componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
componentWillUnmount()
mounting
updating
unmounting
Render method
constructor()
componentWillMount()
render()
componentDidMount()
componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
componentWillUnmount()
Render method
constructor()
componentWillMount()
render()
componentDidMount()
componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
componentWillUnmount()
Render method
constructor()
componentWillMount()
render()
componentDidMount()
componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
componentWillUnmount()
Invoke only if shouldComponentUpdate return true
Typechecking with PropTypes
import React, {PropTypes} from 'react';
export class TodoList extends React.Component {
...
}
TodoList.propTypes = {
items: PropTypes.arrayOf(PropTypes.string)
};
Typechecking with PropTypes
import React, {PropTypes} from 'react';
export class TodoList extends React.Component {
...
}
const {arrayOf, string, bool, func, shape, oneOfType} = PropTypes;
TodoList.propTypes = {
items: arrayOf(string),
loadNew: bool,
updateItems: func.isRequired,
order: oneOfType(null, shape({value: number, items:arrayOf(string)})
};
Want more?
- React Documentation (https://reactjs.org/docs/hello-world.html)
- Better State management: Redux
(https://redux.js.org/introduction)
- Make your data immutable for real: Immutable.js
(https://facebook.github.io/immutable-js)
- Test your Components: Jest
(https://facebook.github.io/jest/docs/en/getting-started.html)
- Make great documentation: React Story Book
(https://github.com/storybooks/storybook)
Why i should learn React?
➔ Awesome testability and debug
➔ Strong support / Popularity
➔ Loose, extendable architecture
➔ Reusable components
➔ React is not just library, it’s a platform:
Next.js -> Server Side Rendering
Gatsby.js -> Static Sites
React Native -> Mobile Apps
ReactVR -> VR Apps
Questions?
https://goo.gl/DvVWq1

More Related Content

What's hot

What's hot (20)

Ngrx: Redux in angular
Ngrx: Redux in angularNgrx: Redux in angular
Ngrx: Redux in angular
 
Redux training
Redux trainingRedux training
Redux training
 
Switch to React.js from AngularJS developer
Switch to React.js from AngularJS developerSwitch to React.js from AngularJS developer
Switch to React.js from AngularJS developer
 
Evan Schultz - Angular Camp - ng2-redux
Evan Schultz - Angular Camp - ng2-reduxEvan Schultz - Angular Camp - ng2-redux
Evan Schultz - Angular Camp - ng2-redux
 
Reactивная тяга
Reactивная тягаReactивная тяга
Reactивная тяга
 
Universal Javascript in React
Universal Javascript in ReactUniversal Javascript in React
Universal Javascript in React
 
Advanced Akka For Architects
Advanced Akka For ArchitectsAdvanced Akka For Architects
Advanced Akka For Architects
 
React with Redux
React with ReduxReact with Redux
React with Redux
 
Introduction to react and redux
Introduction to react and reduxIntroduction to react and redux
Introduction to react and redux
 
Better React state management with Redux
Better React state management with ReduxBetter React state management with Redux
Better React state management with Redux
 
React & Redux
React & ReduxReact & Redux
React & Redux
 
Firebase ng2 zurich
Firebase ng2 zurichFirebase ng2 zurich
Firebase ng2 zurich
 
Ngrx
NgrxNgrx
Ngrx
 
React и redux
React и reduxReact и redux
React и redux
 
React state managmenet with Redux
React state managmenet with ReduxReact state managmenet with Redux
React state managmenet with Redux
 
Let's discover React and Redux with TypeScript
Let's discover React and Redux with TypeScriptLet's discover React and Redux with TypeScript
Let's discover React and Redux with TypeScript
 
React 16: new features and beyond
React 16: new features and beyondReact 16: new features and beyond
React 16: new features and beyond
 
State Models for React with Redux
State Models for React with ReduxState Models for React with Redux
State Models for React with Redux
 
Introduction to Redux
Introduction to ReduxIntroduction to Redux
Introduction to Redux
 
Redux workshop
Redux workshopRedux workshop
Redux workshop
 

Similar to Intro to React | DreamLab Academy

Workshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & ReduxWorkshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & ReduxVisual Engineering
 
React & Redux for noobs
React & Redux for noobsReact & Redux for noobs
React & Redux for noobs[T]echdencias
 
Higher Order Components and Render Props
Higher Order Components and Render PropsHigher Order Components and Render Props
Higher Order Components and Render PropsNitish Phanse
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react applicationGreg Bergé
 
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...Luciano Mammino
 
Manage the Flux of your Web Application: Let's Redux
Manage the Flux of your Web Application: Let's ReduxManage the Flux of your Web Application: Let's Redux
Manage the Flux of your Web Application: Let's ReduxCommit University
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projectsIgnacio Martín
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and SymfonyIgnacio Martín
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation洪 鹏发
 
Introducing Vuex in your project
Introducing Vuex in your projectIntroducing Vuex in your project
Introducing Vuex in your projectDenny Biasiolli
 
State manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to VuexState manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to VuexCommit University
 
The evolution of redux action creators
The evolution of redux action creatorsThe evolution of redux action creators
The evolution of redux action creatorsGeorge Bukhanov
 
React + Redux Introduction
React + Redux IntroductionReact + Redux Introduction
React + Redux IntroductionNikolaus Graf
 
Your IDE Deserves Better
Your IDE Deserves BetterYour IDE Deserves Better
Your IDE Deserves BetterBoris Litvinsky
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7Dongho Cho
 

Similar to Intro to React | DreamLab Academy (20)

React redux
React reduxReact redux
React redux
 
Workshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & ReduxWorkshop 20: ReactJS Part II Flux Pattern & Redux
Workshop 20: ReactJS Part II Flux Pattern & Redux
 
React outbox
React outboxReact outbox
React outbox
 
React hooks
React hooksReact hooks
React hooks
 
React & Redux for noobs
React & Redux for noobsReact & Redux for noobs
React & Redux for noobs
 
Higher Order Components and Render Props
Higher Order Components and Render PropsHigher Order Components and Render Props
Higher Order Components and Render Props
 
Recompacting your react application
Recompacting your react applicationRecompacting your react application
Recompacting your react application
 
React 101
React 101React 101
React 101
 
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
Universal JS Web Applications with React - Web Summer Camp 2017, Rovinj (Work...
 
Manage the Flux of your Web Application: Let's Redux
Manage the Flux of your Web Application: Let's ReduxManage the Flux of your Web Application: Let's Redux
Manage the Flux of your Web Application: Let's Redux
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projects
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and Symfony
 
[Final] ReactJS presentation
[Final] ReactJS presentation[Final] ReactJS presentation
[Final] ReactJS presentation
 
Introducing Vuex in your project
Introducing Vuex in your projectIntroducing Vuex in your project
Introducing Vuex in your project
 
State manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to VuexState manager in Vue.js, from zero to Vuex
State manager in Vue.js, from zero to Vuex
 
The evolution of redux action creators
The evolution of redux action creatorsThe evolution of redux action creators
The evolution of redux action creators
 
React + Redux Introduction
React + Redux IntroductionReact + Redux Introduction
React + Redux Introduction
 
Your IDE Deserves Better
Your IDE Deserves BetterYour IDE Deserves Better
Your IDE Deserves Better
 
Simple React Todo List
Simple React Todo ListSimple React Todo List
Simple React Todo List
 
React, Redux and es6/7
React, Redux and es6/7React, Redux and es6/7
React, Redux and es6/7
 

More from DreamLab

DreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab
 
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8DreamLab
 
Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji DreamLab
 
Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7DreamLab
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?DreamLab
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.DreamLab
 
Gdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringGdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringDreamLab
 
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4DreamLab
 
About Motivation in DevOps Culture
About Motivation in DevOps CultureAbout Motivation in DevOps Culture
About Motivation in DevOps CultureDreamLab
 
Continuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychContinuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychDreamLab
 
Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016DreamLab
 
DevOps at DreamLab
DevOps at DreamLabDevOps at DreamLab
DevOps at DreamLabDreamLab
 

More from DreamLab (12)

DreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.jsDreamLab Academy #12 Wprowadzenie do React.js
DreamLab Academy #12 Wprowadzenie do React.js
 
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
Selenium WebDriver Testy Automatyczne w Pythonie | DreamLab Academy #8
 
Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji Subtelna sztuka optymalizacji
Subtelna sztuka optymalizacji
 
Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7Podstawy JavaScript | DreamLab Academy #7
Podstawy JavaScript | DreamLab Academy #7
 
Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?Let's build a PaaS platform, how hard could it be?
Let's build a PaaS platform, how hard could it be?
 
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
Wdrażanie na wulkanie, czyli CI w świecie który nie znosi opóźnień.
 
Gdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous MonitoringGdy testy to za mało - Continuous Monitoring
Gdy testy to za mało - Continuous Monitoring
 
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
Intro to JavaScript | Wstęp do programowania w Java Script | DreamLab Academy #4
 
About Motivation in DevOps Culture
About Motivation in DevOps CultureAbout Motivation in DevOps Culture
About Motivation in DevOps Culture
 
Continuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowychContinuous Integration w konfiguracji urządzeń sieciowych
Continuous Integration w konfiguracji urządzeń sieciowych
 
Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016Real User Monitoring at Scale @ Atmosphere Conference 2016
Real User Monitoring at Scale @ Atmosphere Conference 2016
 
DevOps at DreamLab
DevOps at DreamLabDevOps at DreamLab
DevOps at DreamLab
 

Recently uploaded

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 

Recently uploaded (20)

What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 

Intro to React | DreamLab Academy