SlideShare ist ein Scribd-Unternehmen logo
1 von 60
Dynamic package loading
and routing with Ext JS
Nils Dehl
1
Karlsruhe, 10.04.2019
Nils Dehl
• JavaScript Consultant and Trainer
• over 10 years Ext JS experience
• Sencha MVP
• @nilsdehl
• nils.dehl@dkd.de
• https://github.com/mrsunshine
2
Routing
3
4
5
6
http://domain.tld/#person/1234
7
8
9
10
http://localhost:3000/#login
11
12Coworkee/client/app/view/viewport/ViewportController.js
13
me.redirectTo('login', {replace: true});
Coworkee/client/app/view/viewport/ViewportController.js
14Coworkee/client/app/Application.js
15
16
http://lh:3000/#person/2342
17
18Coworkee/client/app/view/main/MainController.js
19Coworkee/client/app/view/viewport/ViewportController.js
20Coworkee/client/app/view/viewport/ViewportController.js
21
22Coworkee/client/app/view/viewport/ViewportController.js
23
24Coworkee/client/packages/local/coworkee-widgets/src/BrowseController.js
25
http://lh:3000/#home|range/past
26
27Coworkee/client/packages/local/Home/src/HomeController.js
Coworkee/client/app/view/main/MainController.js
28Coworkee/client/app/view/viewport/ViewportController.js
Packages
29
30
31
32
sencha generate package --namespace App.view.auth Auth
33
34
35Coworkee/client/packages/local/Auth/package.json
36Coworkee/client/app.json
37Coworkee/client/packages/local/History/package.json
38Coworkee/client/packages/local/coworkee/package.json
39
sencha package build
40
41
sencha package repo init -name “dkd" -email “nd@dkd.de”
42
sencha package add coworkee.pkg
Dynamic Package Loading
43
44
Ext JS Version < 6.5
45
requires: [
“package-loader”
]
46
47
sencha generate package -require Home 
then generate package -require Office 
then generate package -require Organization 
then generate package -require Person 
then generate package -require History
48Coworkee/client/app.json
49
sencha app build —uses
50
51
52Coworkee/client/app/view/main/MainController.js
53Coworkee/client/app/view/main/MainController.js
54
55Coworkee/client/app/view/main/MainController.js
56Coworkee/client/app/view/main/MainController.js
Resources
57
Coworkee Example App:
https://github.com/mrsunshine/Coworkee
Routing Guide:
https://docs.sencha.com/extjs/6.7.0/guides/application_architecture/router.html
Ext.route.Router:
https://docs.sencha.com/extjs/6.7.0/classic/Ext.route.Router.html
Dynamic Package Loading Blog Post:
https://mitchellsimoens.com/2017/04/12/package-loading/
Ext.Package:
https://docs.sencha.com/extjs/6.7.0/classic/Ext.Package.html
dkd sagt Danke
dkd Internet Service GmbH
Kaiserstraße 73, 60329 Frankfurt am Main
58
Quelle: Matthias Dörzbacher, dkd Internet Service GmbH
59
Nils Dehl
• JavaScript Consultant and Trainer
• over 10 years Ext JS experience
• Sencha MVP
• @nilsdehl
• nils.dehl@dkd.de
• https://github.com/mrsunshine
60

Weitere ähnliche Inhalte

Was ist angesagt?

Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
Kyle Dorman
 

Was ist angesagt? (20)

Asynchronous JavaScript Programming with Callbacks & Promises
Asynchronous JavaScript Programming with Callbacks & PromisesAsynchronous JavaScript Programming with Callbacks & Promises
Asynchronous JavaScript Programming with Callbacks & Promises
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
Impact of the New ORM on Your Modules
Impact of the New ORM on Your ModulesImpact of the New ORM on Your Modules
Impact of the New ORM on Your Modules
 
Spring Boot Tutorial
Spring Boot TutorialSpring Boot Tutorial
Spring Boot Tutorial
 
Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.Java 8 Stream API. A different way to process collections.
Java 8 Stream API. A different way to process collections.
 
All you need to know about the JavaScript event loop
All you need to know about the JavaScript event loopAll you need to know about the JavaScript event loop
All you need to know about the JavaScript event loop
 
Express JS
Express JSExpress JS
Express JS
 
Top Frontend Framework 2022
Top Frontend Framework 2022Top Frontend Framework 2022
Top Frontend Framework 2022
 
Second Level Cache in JPA Explained
Second Level Cache in JPA ExplainedSecond Level Cache in JPA Explained
Second Level Cache in JPA Explained
 
자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)자바 직렬화 (Java serialization)
자바 직렬화 (Java serialization)
 
An Introduction to ReactJS
An Introduction to ReactJSAn Introduction to ReactJS
An Introduction to ReactJS
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Rethinking Best Practices
Rethinking Best PracticesRethinking Best Practices
Rethinking Best Practices
 
Rest api with node js and express
Rest api with node js and expressRest api with node js and express
Rest api with node js and express
 
Creating Single Page Applications with Oracle Apex
Creating Single Page Applications with Oracle ApexCreating Single Page Applications with Oracle Apex
Creating Single Page Applications with Oracle Apex
 
병렬프로그래밍과 Cuda
병렬프로그래밍과 Cuda병렬프로그래밍과 Cuda
병렬프로그래밍과 Cuda
 
Service Worker Presentation
Service Worker PresentationService Worker Presentation
Service Worker Presentation
 
VueJS: The Simple Revolution
VueJS: The Simple RevolutionVueJS: The Simple Revolution
VueJS: The Simple Revolution
 
Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]Fundamental JavaScript [UTC, March 2014]
Fundamental JavaScript [UTC, March 2014]
 
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
시니어가 들려주는 "내가 알고 있는 걸 당신도 알게 된다면"
 

Ähnlich wie Dynamic package loading 
and routing with Ext JS

Single page applications mit asp.net mvc und der asp.net web api
Single page applications mit asp.net mvc und der asp.net web apiSingle page applications mit asp.net mvc und der asp.net web api
Single page applications mit asp.net mvc und der asp.net web api
Alexander Zeitler
 
ASPC 2015 - Building JavaScript to Stand the Test of Time
ASPC 2015 - Building JavaScript to Stand the Test of TimeASPC 2015 - Building JavaScript to Stand the Test of Time
ASPC 2015 - Building JavaScript to Stand the Test of Time
Marc D Anderson
 
resume_2016_low_rez
resume_2016_low_rezresume_2016_low_rez
resume_2016_low_rez
James Gray
 

Ähnlich wie Dynamic package loading 
and routing with Ext JS (20)

Web Applications with AngularJS
Web Applications with AngularJSWeb Applications with AngularJS
Web Applications with AngularJS
 
Single page applications mit asp.net mvc und der asp.net web api
Single page applications mit asp.net mvc und der asp.net web apiSingle page applications mit asp.net mvc und der asp.net web api
Single page applications mit asp.net mvc und der asp.net web api
 
ASPC 2015 - Building JavaScript to Stand the Test of Time
ASPC 2015 - Building JavaScript to Stand the Test of TimeASPC 2015 - Building JavaScript to Stand the Test of Time
ASPC 2015 - Building JavaScript to Stand the Test of Time
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
Karlsruher Entwicklertag 2013 - Webanwendungen mit AngularJS
Karlsruher Entwicklertag 2013 - Webanwendungen mit AngularJSKarlsruher Entwicklertag 2013 - Webanwendungen mit AngularJS
Karlsruher Entwicklertag 2013 - Webanwendungen mit AngularJS
 
Front End Development for Back End Developers - Denver Startup Week 2017
Front End Development for Back End Developers - Denver Startup Week 2017Front End Development for Back End Developers - Denver Startup Week 2017
Front End Development for Back End Developers - Denver Startup Week 2017
 
resume_2016_low_rez
resume_2016_low_rezresume_2016_low_rez
resume_2016_low_rez
 
DCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application PackagesDCEU 18: App-in-a-Box with Docker Application Packages
DCEU 18: App-in-a-Box with Docker Application Packages
 
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en AzureGapand 2017 - Diseñando Arquitecturas Serverless en Azure
Gapand 2017 - Diseñando Arquitecturas Serverless en Azure
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
GDG Ibadan #pwa
GDG Ibadan #pwaGDG Ibadan #pwa
GDG Ibadan #pwa
 
ResumeWithPassport
ResumeWithPassportResumeWithPassport
ResumeWithPassport
 
Consumer Driven Contracts and Your Microservice Architecture
Consumer Driven Contracts and Your Microservice ArchitectureConsumer Driven Contracts and Your Microservice Architecture
Consumer Driven Contracts and Your Microservice Architecture
 
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
 
RESS: An Evolution of Responsive Web Design
RESS: An Evolution of Responsive Web DesignRESS: An Evolution of Responsive Web Design
RESS: An Evolution of Responsive Web Design
 
qadeer intern report.pdf
qadeer intern report.pdfqadeer intern report.pdf
qadeer intern report.pdf
 
That’s not your var – JavaScript best practices for C# developers
That’s not your var – JavaScript best practices for C# developersThat’s not your var – JavaScript best practices for C# developers
That’s not your var – JavaScript best practices for C# developers
 
Rest to Graphql
Rest to GraphqlRest to Graphql
Rest to Graphql
 
European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...
 

Mehr von Nils Dehl

Mehr von Nils Dehl (7)

Sencha Touch meets TYPO3 CMS
Sencha Touch meets TYPO3 CMSSencha Touch meets TYPO3 CMS
Sencha Touch meets TYPO3 CMS
 
jsday.it - develop and test custom components for sencha touch by nils dehl
jsday.it - develop and test custom components for sencha touch by nils dehljsday.it - develop and test custom components for sencha touch by nils dehl
jsday.it - develop and test custom components for sencha touch by nils dehl
 
Sencha Touch meets TYPO3
Sencha Touch meets TYPO3Sencha Touch meets TYPO3
Sencha Touch meets TYPO3
 
Workshop getting started with sencha touch 2 - nils dehl
Workshop   getting started with sencha touch 2 - nils dehlWorkshop   getting started with sencha touch 2 - nils dehl
Workshop getting started with sencha touch 2 - nils dehl
 
SenchaTouch 2 and Sencha.io
SenchaTouch 2 and Sencha.ioSenchaTouch 2 and Sencha.io
SenchaTouch 2 and Sencha.io
 
SenchaCon 2011 VGF Showcase
SenchaCon 2011 VGF ShowcaseSenchaCon 2011 VGF Showcase
SenchaCon 2011 VGF Showcase
 
Development of the TYPO3 Phoenix User Interface with Ext JS
Development of the TYPO3 Phoenix User Interface with Ext JSDevelopment of the TYPO3 Phoenix User Interface with Ext JS
Development of the TYPO3 Phoenix User Interface with Ext JS
 

Kürzlich hochgeladen

Kürzlich hochgeladen (20)

CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
KLARNA -  Language Models and Knowledge Graphs: A Systems ApproachKLARNA -  Language Models and Knowledge Graphs: A Systems Approach
KLARNA - Language Models and Knowledge Graphs: A Systems Approach
 
SQL Injection Introduction and Prevention
SQL Injection Introduction and PreventionSQL Injection Introduction and Prevention
SQL Injection Introduction and Prevention
 
How to pick right visual testing tool.pdf
How to pick right visual testing tool.pdfHow to pick right visual testing tool.pdf
How to pick right visual testing tool.pdf
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
The Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion ProductionThe Impact of PLM Software on Fashion Production
The Impact of PLM Software on Fashion Production
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 

Dynamic package loading 
and routing with Ext JS

Hinweis der Redaktion

  1. Routing Packages dynamic package loading
  2. Who is using routing?
  3. Single Page Applications no Page loads no History Back Button leaves app
  4. Example app Coworkee based on Sencha, extend, on GitHub Track app state bookmark / email make app stateful open specific state view of an SPA app routing should not be used to store any data or session
  5. Fragment Identifier control the history stack of the browser without reloading the current page
  6. history stack of an SPA
  7. back and forward button working
  8. the ext router lets look how routing works
  9. start with the login route
  10. action file Path on slide in the footer slides will be shared
  11. replace When set to true, this will replace the current resource in the history stack with the hash being set. force Even if the hash will not change, setting this to true will force the Ext.route.Router to react.
  12. defaultToken
  13. default route #home
  14. routes with params
  15. load a person see url in footer
  16. before
  17. un matched route
  18. onRouteChange Event add search filter to route
  19. control add listener “routechange”
  20. Multi route Pipe |
  21. wildcard Ext.History.getToken()
  22. Share code between applications reusability structure sharing (Package Repository / Github ) Ext core / themes / fonts / components scheduler or gant/ custom code who is using?
  23. core modern / classic themes fonts ux / google
  24. app packages local remote
  25. generate package via Sencha CMD
  26. theme require uses
  27. require other packages / dependencies
  28. inside of package folder
  29. local repo init host repo on http get example nexus
  30. add to local repo from build folder
  31. reduce initial load size for big apps Load on demand user rights who is using?
  32. require package-loader package in app.josn
  33. modules as packages before it was all in app
  34. theme require uses