Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to ExtReact, ExtAngular and ExtWeb...
Search
Olga
June 06, 2019
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Introduction to ExtReact, ExtAngular and ExtWebComponents
Olga
June 06, 2019
More Decks by Olga
See All by Olga
Visual Feature Engineering for Machine Learning with React
olgapetrova
0
300
Visual Feature Engineering for ML with React and TensorFlow.js
olgapetrova
0
100
How to Re-Architect a JavaScript Class System
olgapetrova
0
150
Web Push Notifications
olgapetrova
1
330
How to add D3.js visualization to your Ext JS application
olgapetrova
1
630
Turbo-charged Data Analysis and Visualization using Ext JS 6.2
olgapetrova
3
130
ExtJS 6: one framework for all devices
olgapetrova
1
820
Other Decks in Programming
See All in Programming
今さら聞けない .NET CLI
htkym
0
180
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
170
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
210
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.4k
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
200
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
820
React本体のコードリーディング
high_g_engineer
1
130
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
120
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
180
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
240
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
210
VibeCodingからAgenticWorkflowへ
starfish719
0
220
Featured
See All Featured
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Build your cross-platform service in a week with App Engine
jlugia
234
19k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
400
How to train your dragon (web standard)
notwaldorf
97
6.7k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
350
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Designing for Performance
lara
611
70k
Crafting Experiences
bethany
1
240
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
560
Transcript
Olga Petrova, @tyoushe Introduction to ExtReact, ExtAngular, ExtWebComponents Olga Petrova,
@tyoushe
[email protected]
Olga Petrova, @tyoushe ExtReact & ExtAngular
Olga Petrova, @tyoushe
Olga Petrova, @tyoushe Components
Olga Petrova, @tyoushe Ext JS, React and Angular Ext JS
Component configs items: [] Angular Component properties Children elements React Component props Children elements
Olga Petrova, @tyoushe Reactor Wrapper Concept Ext JS Component props
state method calls event listeners transform translate configs events methods link to Ext JS Component
Olga Petrova, @tyoushe Architecture first and lastname React Framework Core
Ext Modern Components Theme Packages Sencha Themer Angular Framework Sencha Test Premium Packages
Olga Petrova, @tyoushe ExtReact 8 import React, { Component }
from 'react'; import { Grid, Column } from '@sencha/ext-modern'; export default class MyGrid extends Component { store = Ext.create('Ext.data.Store', {...}); render() { return ( <Grid title="Stock Prices" store={this.store}> <Column text="Company" dataIndex="name" width="150"/> <Column text="Price" width="85" dataIndex="price" formatter='usMoney‘/> </Grid> ) } } MyGrid.js
Olga Petrova, @tyoushe <container padding="10" layout="fit" [fitToParent]="true"> <grid title="Stock Prices"
[store]="store"> <column text="Company" width="150" dataIndex="name"></column> <column text="Price" width="85" dataIndex="price" formatter="usMoney"></column> <column text="Last Updated" dataIndex="lastChange"></column> </grid> </container> ExtAngular 9 import { Component } from '@angular/core'; @Component({ selector: 'basicgrid-component‘, templateUrl: './MyGrid.html' }) export class BasicGridComponent { store = Ext.create('Ext.data.Store', {...}) constructor() { //... } } MyGrid.html MyGrid.ts
Olga Petrova, @tyoushe Getting Started 10 ExtReact Trial: https://www.sencha.com/products/extreact/evaluate/ ExtAngular
Trial: https://www.sencha.com/products/extangular/evaluate/
Olga Petrova, @tyoushe npm login --registry=https://npm.sencha.com --scope=@sencha npm install -g
@sencha/ext-react-gen ext-react-gen app -i Setup 11
Olga Petrova, @tyoushe Examples 12 ExtReact Kitchensink: https://examples.sencha.com/ExtReact/6.7.0/kitchensink/ ExtAngular Kitchensink:
https://examples.sencha.com/ExtAngular/6.7.0/kitchensink/
Olga Petrova, @tyoushe Vue.js
Olga Petrova, @tyoushe WebComponents
Olga Petrova, @tyoushe
Olga Petrova, @tyoushe Specifications • Custom Elements • Shadow DOM
• ES Modules • HTML Template 16
Olga Petrova, @tyoushe Custom HTML Tag 17 class MyAwesomeButton extends
HTMLElement {...} window.customElements.define('my-awesome-button', MyAwesomeButton); <my-awesome-button class="nice_style">Click me!</my-awesome-button> var myAwesomeButton = document.createElement('my-awesome-button‘); document.body.appendChild(myAwesomeButton); document.querySelector('my-awesome-button‘) .addEventListener('click', function() {...});
Olga Petrova, @tyoushe
Olga Petrova, @tyoushe ExtWebComponents
Olga Petrova, @tyoushe ExtWebComponents 20 import '@sencha/ext-web-components/dist/ext-column.component'; import '@sencha/ext-web-components/dist/ext-grid.component‘;
Olga Petrova, @tyoushe <ext-panel width="100%" height="100%"> <ext-grid multiColumnSort=true onready="basicgrid.onGridReady" title="Stock
Prices"> <ext-column text="Company" flex="1" dataIndex="name"></ext-column> <ext-column text="Price" dataIndex="price" formatter="usMoney"></ext-column> <ext-column text="Last Updated" dataIndex="lastChange"></ext-column> </ext-grid> </ext-panel> import './MyGrid.html'; export default class MyGrid { constructor() { this.store = Ext.create('Ext.data.Store', {...}); } onGridReady = (event) => { this.gridCmp = event.detail.cmp; this.gridCmp.setStore(this.store); } } ExtWebComponents 21 MyGrid.html MyGrid.js
Olga Petrova, @tyoushe Getting Started 22 MyGrid.ts Early adopter access
to ExtWebComponents Trial: https://www.sencha.com/products/extwebcomponents/evaluate/earlyaccess/
Olga Petrova, @tyoushe npm login --registry=https://sencha.myget.org/F/early-adopter/npm/ --scope=@sencha npm install -g
@sencha/ext-web-components-gen ext-web-components-gen app --name MyApp Setup 23 MyGrid.ts
Olga Petrova, @tyoushe Examples 24 ExtWebComponents Kitchensink: https://examples.sencha.com/ExtWebComponents/7.0.0/kitchensink/
Olga Petrova, @tyoushe • 115+ UI Components • Layout System
• Sencha Themer • Sencha Test • Sencha Cmd integration • Ext JS component bridge • Webpack: Build and Bundle ExtReact ExtAngular ExtWebComponents
Olga Petrova, @tyoushe Introduction to ExtReact, ExtAngular, ExtWebComponents Olga Petrova,
@tyoushe
[email protected]