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
Re-revolution to front-end with Riot.js
Search
kkeeth
November 17, 2018
Programming
310
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Re-revolution to front-end with Riot.js
kkeeth
November 17, 2018
More Decks by kkeeth
See All by kkeeth
Programming to play with p5.js
clown0082
0
100
とある EM の初めての育休からの学び
clown0082
1
5.8k
The history of Javascript frameworks: changes in front-end design philosophy
clown0082
2
240
Visually experience the beauty of mathematics with p5.js
clown0082
1
3.3k
Rediscover the joy of coding with Creative Coding
clown0082
0
2k
全員が意思決定する会社で開発者体験や生産性を見る大変さについて
clown0082
0
670
JavaScript × Mathematics go to Digital Art
clown0082
1
470
In-house study group at YUMEMI
clown0082
0
240
Playing Ionic Logo by p5.js
clown0082
0
360
Other Decks in Programming
See All in Programming
Building a Meta Ray-Ban display app
akkeylab
0
160
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
190
テーブルをDELETEした
yuzneri
0
140
freee が目指す データ マネジメント戦略 AI-Ready 時代を支える 攻めのガバナンスとは
freee
PRO
0
390
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
520
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
940
Flow は今どうなっているか
mizdra
PRO
0
590
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
500
170k Jobs a Day on GKE: Scaling Mercari's CI Platform - and What's Next for AI-Native Development
junyaokabe
0
110
バグを直したら useEffect が消えた
colorful12
2
450
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
220
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
380
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
630
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1.1k
Darren the Foodie - Storyboard
khoart
PRO
3
3.6k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
500
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Scaling GitHub
holman
464
140k
Transcript
Re-revolution to front-end with Riot.js ळͷJavaScriptࡇ in ࢜௨ΫϥυςΫϊϩδʔζ
About me
Basic Information const my_info = { Name: ‘܂ݪਔ’, Workplace: ‘Yumemi
Inc’, twitter: ‘kuwahara_jsri’, GitHub: ‘k-kuwahara’, Npm: ‘k-kuwahara’, }
Communities translator staff staff
Communities github.com/riot
Sorry... " Plz feedback for me called “Masakari” about my
English.
Modern Frameworks and libraries are “Component oriented”
None
Today, I will introduce a more simple and elegant library
None
The charm of riotjs
What is ?
image by: https://riot.js.org/
Characteristics ‣ Custom tags(Component based) ‣ Simple syntax and minimalistic
‣ Human-readable ‣ Small leaning curve
Custom tag <app> <h3>{ opts.title }</h3> <ul> <li each={ techs
}>{ name }</li> </ul> <script> this.techs = [ { name: 'HTML' }, { name: 'JavaScript' }, { name: 'CSS' } ] </script> <style> :scope { font-size: 2rem } ul { color: #999 } </style> </app>
Custom tag <app> <h3>{ opts.title }</h3> <ul> <li each={ techs
}>{ name }</li> </ul> <script> this.techs = [ { name: 'HTML' }, { name: 'JavaScript' }, { name: 'CSS' } ] </script> <style> :scope { font-size: 2rem } ul { color: #999 } </style> </app> HTML JS CSS
Custom tag <app> <h3>{ opts.title }</h3> <ul> <li each={ techs
}>{ name }</li> </ul> <script> this.techs = [ { name: 'HTML' }, { name: 'JavaScript' }, { name: 'CSS' } ] </script> <style> :scope { font-size: 2rem } ul { color: #999 } </style> </app> like ”props” in Vue.js or React.js
Mount <!doctype html> <html> <body> <app></app> <script src=“riot.js”></script> <script src=“app.tag”
type=“riot/tag”></script> <script> riot.mount(‘app’, {title: ‘Hello Riot.js!!’}) </script> </body> </html>
Mount <!doctype html> <html> <body> <app></app> <script src=“riot.js”></script> <script src=“app.tag”
type=“riot/tag”></script> <script> riot.mount(‘app’, {title: ‘Hello Riot.js!!’}) </script> </body> </html>
Mount <!doctype html> <html> <body> <app></app> <script src=“riot.js”></script> <script src=“app.tag”
type=“riot/tag”></script> <script> riot.mount(‘app’, {title: ‘Hello Riot.js!!’}) </script> </body> </html> pass to “opts”
More example
Stats of riotjs
Stats of Riot.js ‣ version: 3.13.1 ‣ github star: 13329
‣ open issues: 30 ‣ size: 10.85 kb(gzip)
BTW,
Stats of Riot.js
Stats of Riot.js about 1/3 size of Vue.js !!
Made with riot (so-called showcase)
Made with riot
Made with riot URL: http://riot.js.org/made-with-riot/
Comparison between riot and react
None
Why React is a rival ?
Reason 1
Reason 2
Why is named ?
Frameworks and libraries
Frameworks and libraries TOO MANY THINGS TO REMEMBER, AND TOO
COMPLICATED !!
the mean of “riot” is a “riot” against its complexity
of JavaScript frameworks.
Changes about riot from @2 to @3
Performance of riot.js
Rendering time 10,000 rows of DOM elements URL: https://k-kuwahara.github.io/demo/riot/pitfalls/loop-benchmark/v3.html
Rendering time 10,000 rows of DOM elements
riot.route removed from riot core
riot-route 10,000 rows of DOM elements
There are some other changes, so please see the official
website. URL: https://riot.js.org/guide/migration-from-riot2/
Ecosystem for riot
Ecosystem ɾriot ɾriot-clI ɾriot-compiler ɾriot-observable ɾriot-tmpl Basics SPA (routing) ɾriot-route
ɾriot-view-router ɾriot-routehandler ɾriotgear-router ɾredux-riot-router State management ɾRiotControl ɾriotify ɾriotx ɾobseriot Compile ɾgulp-riot ɾriot-tag-loader ɾriotjs-loader ɾriotify ɾrollup-plugin-riot Designs, Animations ɾriot-mui ɾnest-ui ɾriot-bootstrap ɾriot-fontawesome ɾsemantic-ui-riot ɾriot-animate ɾriot-flipcard ɾbabel-preset-es2015-riot ɾriot-placeholder ɾkarma-riot ɾriot-hot-reload ɾeslint-config-riot Others
Ecosystem
The persona of riot
Persona of riot ‣ Beginners of JavaScript ‣ Beginners of
frameworks of JavaScript ‣ Designers ‣ Small-scale products developer
The roadmap about leaning of JavaScript frameworks.
Roadmap of JS frameworks
Next @4
Pick up some of the roadmap @4 ‣ “this.tags” ‣
“riot-observable” ‣ “shouldUpdate” method ‣ “:scope” → “:root” ‣ parser/compiler ‣ “export default” ← new!!
Progress Two modules released!! ‣ dom-bindings → v0.4.0 ‣ parser
→ v0.7.0 Demo: https://codesandbox.io/s/rr3k4pmzrq
Conclusion
Closing ‣ Riot.js is hard to become the main framework
of application development ‣ Using as a stepping stone ‣ Riot.js is a library that supports step-upof JavaScript engineer
Let’s Create Web Application with Riot.js !!
Publicity
We’re looking for Engineers!!
None
None