wordpress: react way

66
WordPress: React Way How to merge WordPress with React for building modern content websites

Upload: oleksandr-strikha

Post on 14-Apr-2017

219 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: WordPress: React Way

WordPress: React WayHow to merge WordPress with React for building modern content websites

Page 2: WordPress: React Way

About Me

GitHub https://github.com/shtrihstr

Blog

Email

https://www.strikha.com

[email protected]

Page 3: WordPress: React Way

PlanCurrent situation in WEB

Single page application

React JSUse case: Blog on WordPress

Best practices

Examples of features

Page 4: WordPress: React Way

Current situation in WEBApplication Content

Page 5: WordPress: React Way
Page 6: WordPress: React Way
Page 7: WordPress: React Way
Page 8: WordPress: React Way
Page 9: WordPress: React Way
Page 10: WordPress: React Way
Page 11: WordPress: React Way
Page 12: WordPress: React Way

Single Page Application

Page 13: WordPress: React Way

Classic WEB

Page 14: WordPress: React Way

Classic WEB

Page 15: WordPress: React Way

Classic WEB

Page 16: WordPress: React Way

Classic WEB

Page 17: WordPress: React Way

Single Page App

Page 18: WordPress: React Way

Single Page App

Page 19: WordPress: React Way

Architecture

Data Logic Interface

Backend Frontend

Page 20: WordPress: React Way

Architecture

Data Interface

Backend Frontend

LogicLogic

API

Page 21: WordPress: React Way

ReactJSFast and Convenient

Page 22: WordPress: React Way

Fast Rendering

Page 23: WordPress: React Way

Fast Rendering

Page 24: WordPress: React Way

Fast Rendering

Page 25: WordPress: React Way

Fast Rendering

Page 26: WordPress: React Way

Components

Button

Page 27: WordPress: React Way

Components

Button

Form

Page 28: WordPress: React Way

Components

Button

Form

Comments

Page 29: WordPress: React Way

Components

<Button /> <Form /> <Comments />

Render Render RenderMake RequestsAccess to Store

Page 30: WordPress: React Way

Components

JSHTML CSS

JSX

Page 31: WordPress: React Way

Use Case: Blog

Code Example

Live Demo

https://github.com/shtrihstr/wp-react-example

https://wp-react-example.strikha.com/

Page 32: WordPress: React Way

JavaScript LibsRendering Routing

StoreRequests

Page 33: WordPress: React Way

JavaScript LibsRendering:

Routing:

Store:

Requests:

ReactJS

React Router

Redux

Any Ajax lib

Page 34: WordPress: React Way

Store

Page 35: WordPress: React Way

Store

Page 36: WordPress: React Way

Store

Page 37: WordPress: React Way

Store

Component

Store

Page 38: WordPress: React Way

Store

Component

Store

API

Ajax

Page 39: WordPress: React Way

Redux Thunk

Component

Store

API

Thunk

Page 40: WordPress: React Way

WordPress REST API

REST API Plugin

Simple REST API

http://v2.wp-api.org/

https://github.com/shtrihstr/simple-rest-api

Page 41: WordPress: React Way

React + WordPress Tricks

Page 42: WordPress: React Way

Routing

WordPress /2016/01/02/hello-world

Page 43: WordPress: React Way

Routing

WordPress /2016/01/02/hello-world

React App /blog/post/1

Page 44: WordPress: React Way

Routing

React App

WordPress /2016/01/02/hello-world

/2016/01/02/hello-world

React App /blog/post/1

Page 45: WordPress: React Way

Content

ApplicationContent Site

Page 46: WordPress: React Way

~ 80% is a Content

Page 47: WordPress: React Way

the_content();

Page 48: WordPress: React Way

the_content();[ { node: 'h3', text: 'Hello World!', }, { node: 'img', attr: { src: 'img.png' } }[

Page 49: WordPress: React Way

Response Time

GET /home Ajax

Page 50: WordPress: React Way

Preset Store

window._initialState = { posts: [ <?= json_encode( $post ) ?> ] }

/2016/01/02/hello-world

Page 51: WordPress: React Way

Server Side Rendering

Page 52: WordPress: React Way

Server Side Rendering

WordPress ClientHTML

Page 53: WordPress: React Way

Server Side Rendering

WordPress ClientHTML

NodeJS/V8

HTMLJSON

Page 54: WordPress: React Way

Server Side Rendering

NodeJS locally

PHP V8js

AWS Lambda

https://nodejs.org

https://github.com/phpv8/v8js

https://aws.amazon.com/lambda/details/

Page 55: WordPress: React Way

Features

Page 56: WordPress: React Way

Data Reuse

Page 57: WordPress: React Way

Data Reuse

Page 58: WordPress: React Way

Data Reuse< 200ms

Page 59: WordPress: React Way

Data Reuse~ 3ms

Page 60: WordPress: React Way

Data Preloading

Read More

Page 61: WordPress: React Way

Load Next

Page 62: WordPress: React Way

Responsive

Header

Article Aside

Header

Article

Aside

Page 63: WordPress: React Way

Responsive

Header

Article Aside

Header

Article

Aside

Slider

Page 64: WordPress: React Way

Minuses

No possibility to use most of plugins

Time consuming

Page 65: WordPress: React Way

Pluses

Fast

Better user experience

Page 66: WordPress: React Way

Questions?