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
Riot.js Tokyo #2
Search
h2so5
February 02, 2017
Programming
740
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Riot.js Tokyo #2
h2so5
February 02, 2017
More Decks by h2so5
See All by h2so5
Dripcap03
h2so5
2
360
Goによる P2Pチャットシステムの開発
h2so5
11
7.1k
Other Decks in Programming
See All in Programming
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.8k
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
660
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
670
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
0
340
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
730
業務時間外もAIに働いてもらう話
colorful12
3
9.9k
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
210
typoなんかねぇよ
raspython3
0
660
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
210
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
130
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
250
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
141
7.7k
Skip the Path - Find Your Career Trail
mkilby
1
220
Leo the Paperboy
mayatellez
8
2.2k
Paper Plane
katiecoart
PRO
2
53k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
840
A Soul's Torment
seathinner
7
3.5k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
330
YesSQL, Process and Tooling at Scale
rocio
174
15k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Transcript
Ron Hashimoto Developing a plug-in system with github.com/h2so5
github.com/dripcap/dripcap
+ Electron Background:
Simple and elegant component-based UI library
a.tag b.tag c.tag d.tag Component-based plug-in system
Run-time compiling let tag = riot.require(“view.tag”); 1 Server-side API
Loading styles riot.util.styleManager.inject(); 2
Dynamic mounting <virtual data-is={ tag }> </virtual> 3
Layout? Problem:
None
layout-bottom layout-top layout-list layout-session
<grid-container> opts.center.tag opts.top.tag opts.bottom.tag opts.right.tag opts.left.tag
<tab-container> <grid-container each ={ item, i in opts.items }> tab1
tab2
let container = Layout.container(‘layout-bottom’); container.append({ center: { tag: 'binary-view' },
name: 'Binary' }); Tab name Mounting tagName <tab-container/> Position
Problem 1: Conflicting tag names
<packet-view> <packet-view-layer> <packet-view-item> <packet-view-boolean-value> <packet-view-integer-value> <packet-view-string-value> <packet-view-buffer-value> <packet-view-stream-value> <packet-view-custom-value> <log-view>
<log-view-filter> <log-view-item> <packet-list-view> <packet-filter-view>
Problem 2: Server-side API pollution
document.createElementNS = document.createElement lib/server/sdom.js Conflicting with D3.js
Object.defineProperty(document, 'createElementNS', { value: document.createElementNS } );
None