Quasar Framework v1.0
SSR with
Razvan Stoenescu, 7th June 2019
- JSNation -
Short History
Desktop
Apps
Many
programming
languages
Short History
Desktop
Apps
Web server
Websites
HTML CSS
Many
programming
languages
Short History
Desktop
Apps
Web server
Websites
HTML CSS
Many
programming
languages
JS
Short History
Desktop
Apps
Web server
Websites
HTML CSS
Many
programming
languages
JS
CGI Scripts
(C, Perl, ...)
PHP
Short History
Desktop
Apps
Web server
Websites
HTML CSS
Many
programming
languages
JS
CGI Scripts
(C, Perl, ...)
PHP
Short History
Desktop
Apps
Web server
Websites
HTML CSS
Many
programming
languages
Mobile Apps
Many
programming
languages
JS
CGI Scripts
(C, Perl, ...)
PHP
What if...
One codebase
Javascript
What if...
One codebase
Mobile
Apps
Javascript
What if...
One codebase
Desktop
Apps
Mobile
Apps
Javascript
Developing with Quasar
One codebase Websites
Desktop
Apps
Mobile
Apps
SPA
SSR +
PWA
SSR
PWA
Javascript
Developing with Quasar
One codebase
Javascript
Quasar
CLI
What is Quasar?
Quasar
Quasar
UI
Tooling User Interface
Quasar CLI
➔ Project Setup
$ quasar create <folder>
What features do
you want?
Project folder
Quasar CLI
➔ Project Setup
➔ Development
Server
$ quasar dev -m spa
$ quasar dev -m pwa
$ quasar dev -m electron
$ quasar dev -m ssr
$ quasar dev -m
[ios|android]
Project folder
Browser Extensions
Quasar CLI
➔ Project Setup
➔ Development
Server
Hot Module
Reload
Quasar CLI
➔ Project Setup
➔ Development
Server
➔ Build System
All latest and greatest best practices
Quasar CLI
➔ Project Setup
➔ Development
Server
➔ Build System
Minification
(JS & HTML & CSS)
Prefetching
Cache busting
PWA manifest
Lazy loading
Preloading
Tree Shaking
Web Worker
and many more...
Quasar UI
114 Vue components
● Isomorphic
● Material 2.0
Quasar UI
9 Vue directives
Examples:
● v-touch-pan
● v-touch-hold
● v-touch-repeat
● v-scroll
Quasar UI
11 Quasar plugins
Examples:
● Dialog
● Notify
● AppFullscreen
● Loading
● Cookies
● BottomSheet
Quasar UI
6 categories of utils
Examples:
● Date
● Color
● DOM
● Scrolling
Quasar Icon Sets & App space Icons
Fontawesome
Fontawesome Pro
Ionicons
Material
Icons
MDI (Material Design
Icons - extended)
Themify
Icons
Eva Icons
➔ Currently there are 45 Quasar language
packs
➔ RTL mode also transforms user-space
CSS code automatically
➔ Ability to switch from/to RTL mode
dynamically at runtime
Quasar Language Packs & Full RTL Support
How Quasar SSR works
Store
Components
Router
Boot
files
App code
How Quasar SSR works
Store
Components
Router
Boot
files
Quasar CLI
App code /quasar.conf.js
How Quasar SSR works
Store
Components
Router
Boot
files
Quasar CLI
Bundle
renderer
Nodejs
Server
bundle
App code
SSR
Extensions
Server
How Quasar SSR works
Store
Components
Router
Boot
files
Quasar CLI
Bundle
renderer
Nodejs
Server
bundle
App code
SSR
Extensions
Server
Browser
Client
bundle
HTMLHydrates
Renders
Quasar SSR + PWA
SEO for free - Quasar Meta Plugin
SEO for free - Quasar Meta Plugin
Page title
SEO for free - Quasar Meta Plugin
Page title
Meta tags
SEO for free - Quasar Meta Plugin
Page title
Meta tags
<script> or
<link> tags
SEO for free - Quasar Meta Plugin
Page title
Meta tags
<script> or
<link> tags
<body> or
<html> tags
attributes
SEO for free - Quasar Meta Plugin
Page title
Meta tags
<script> or
<link> tags
<body> or
<html> tags
attributes
<noscript>
content
SEO for free - Quasar Meta Plugin
PreFetch feature
PreFetch feature
Router
App
Client
Layouts
Pages
request route
PreFetch feature
Router
App
Client
Layouts
Pages
PreFetch feature
Router
App
Client
Layouts
Pages
Using
preFetch
hooks?
PreFetch feature
Router
App
Client
Layouts
Pages
preFetch
hooks
Store
PreFetch feature
Router
App
Client
Layouts
Pages
preFetch
hooks
Store
render
PreFetch feature
PreFetch feature
PreFetch feature
Boot files
main.js
● Cluttered
● A lot of boilerplate
● Hard to build
SPA/PWA/SSR/Mobile/Desktop
apps without manually adding
complexity
Boot Files
● One file per concern
● No boilerplate
● No additional complexity
● Easy to pick based on build type
through /quasar.conf.js
Boot files
Boot files
Boot files
Handling errors - SERVER
Server-side error
No need to leave the
browser tab!
Handling errors
Client-side error
No need to leave the
browser tab!
Quasar App Extensions
● Configure CLI features
● Add folders/files
● Add CLI commands
● Build, launch and control an API server
● Register UI components
● ....
Input:
image file
@quasar/icon-factory
PWA icons
Cordova
App Icons
Cordova
Splashscreen
PWA
Splashscreen
Electron
App Icons
For all targeted platforms:
● Browsers: Chrome, FF, Safari, IE, ...
● Mobile Apps: iOS, Android
● Desktop Apps: macOS, Windows, Linux
Favicons
SPA Web
Icons
Icon Factory
App Extension
Testing
App Extension
● Unit & e2e testing harnesses
● Product quality auditing tools
● Product security auditing tools
Quasar App Extensions
Community
Community
App Extension
Example
$ quasar ext add remote-dev-tools
Thanks for watching!
https://quasar.dev
forum.quasar.dev
chat.quasar.dev
blog.quasar.dev
@quasarframework

SSR with Quasar Framework - JSNation 2019