-
-
Notifications
You must be signed in to change notification settings - Fork 1
Architecture Overview
github-actions[bot] edited this page Jun 17, 2026
·
1 revision
Rikka ้็จๆธ ๆฐ็ไธๅฑๆถๆ๏ผๅๅบๅผๅฑ โ DOM ๅฑ โ ่ชๅฎไนๅ ็ด ๅฑ๏ผๆฏไธๅฑๅฏ็ฌ็ซไฝฟ็จ๏ผไธๅฑๆๅปบไบไธๅฑไนไธใ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Application / Components โ
โ (examples/*, rikka-homepage, user code) โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโ โโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ rikka-live-playground โ โ rikka-elements โ
โ (ๅบไบ rikka-elements โ โ defineElement, โ
โ ๆๅปบ็้ซ็บง็ปไปถ) โ โ ๅฑๆง/ไบไปถ/ๆนๆณ/ๆจกๆฟ โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโ โโโโโโฌโโโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโ
โ rikka-dom โ
โ h(), tag helpers, ReactiveRange, For/Show/Switch, โ
โ css(), inlineStyle, ๆจกๆฟ่งฃๆ โ
โโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ rikka-signal โ
โ signal(v), computed(fn), effect(fn), untracked โ
โ ๅบไบ signal-polyfill (TC39 Signals ๆๆก) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Native Web Platform / signal-polyfill โ
โ Custom Elements v1 ยท Shadow DOM ยท CSS ๅตๅฅ ยท โ
โ ES Modules ยท HTMLTemplateElement ยท WeakRef โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- ๅช้่ฆๅๅบๅผ โ ็จ
rikka-signal - ้่ฆๅฃฐๆๅผ DOM ๅๅปบ โ ็จ
rikka-dom - ้่ฆๅฏๅค็จ Web Component โ ็จ
rikka-elements
- ๆ ธๅฟๅ
@takanashi/rikka-signalใ@takanashi/rikka-domใ@takanashi/rikka-elements้คไบsignal-polyfillๆฒกๆ่ฟ่กๆถไพ่ต - ไบง็ฉ้่ฟ
rslibๆๅปบ๏ผๅฏ Tree-shake๏ผๅๅ gzipped ็บฆ 1-6KB
h(tag, attrs, children) ๅๆๆ้ข็ๆ็ div / button / ... ๅฝๆฐ้ฝ่ฟๅ็ๅฎ็ HTMLElement๏ผๆฒกๆ่ๆ DOM ๅฑ๏ผๆฒกๆ diff ็ฎๆณใ
- ๅๅบๅผ่ฎข้
ๅจ
effect/ReactiveRangeๅ ้จๅปบ็ซ - ๆฏๆฌก
.set()่งฆๅ่ฎข้ ่็น็ๅฑ้จๆดๆฐ๏ผ่ไธๆฏๆดๆฃตๆ ้ๆธฒๆ - ไฝฟ็จ
WeakMap+FinalizationRegistryๅ่ชๅจๆธ ็๏ผ้ฟๅ ๅ ๅญๆณๆผ
defineElement() ไบง็็ๆฏๆ ๅ HTMLElement ๅญ็ฑป๏ผๅฏๅจ React / Vue / Angular / Svelte ไธญ็ดๆฅไฝฟ็จ๏ผไนๅฏ่ฃธ HTML ไฝฟ็จใ
@takanashi/rikka-signal # ๆ ๅ
้จไพ่ต (ไป
peer: signal-polyfill)
โฒ
โ ๅฏผๅ
ฅ
โ
@takanashi/rikka-dom # ไพ่ต rikka-signal
โฒ
โ ๅฏผๅ
ฅ
โ
@takanashi/rikka-elements # ไพ่ต rikka-dom + rikka-signal
โฒ
โ ๅฏผๅ
ฅ
โ
@takanashi/rikka-live-playground # ไพ่ต rikka-elements
signal.set(newValue)
โ
โผ
Signal.State ็็ๆฌๅท ++
โ
โผ
signal-polyfill ้็ฅๆๆ่ฎข้
่
โ
โผ
effect(fn) ๆณจๅ็ Watcher ่งฆๅ
(queueMicrotask ไธญๅผๆญฅๆง่ก)
โ
โผ
fn() ๆง่กๆถ่ฏปๅไฟกๅท โ ้ๆฐๅปบ็ซไพ่ต โ ๅฑ้จ DOM ๆดๆฐ
โ
โผ
Signal.Computed ๅปถ่ฟๆฑๅผ๏ผๆ้๏ผ
ๅ ณ้ฎๅฎ็ฐๆไปถ๏ผ
-
utils/rikka-signal/src/index.tsโsignal/computed/untracked -
utils/rikka-signal/src/effect.tsโ ๅธฆๆธ ็็ effect ๅฎ็ฐ
rikka-dom ้่ฟ ReactiveRange ๆ ่ฎฐไธ็ปๅฏๆฟๆข่็น๏ผ้
ๅ effect ็ๅฌไฟกๅทๅๅๅนถๅชๅฏน่ๅดๅ
็ DOM ่ฟ่กๆๅฐไฟฎๆน๏ผ
-
applyChild(parent, child)ๅฐ child ๆ่ฝฝๅฐ็ถๅ ็ด - ๅฝ child ๆฏ
Signalๆcomputed๏ผไผ่ชๅจๅๅปบReactiveRangeๅ ่ฃ - ไฟกๅทๅๅๆถ
range.reconcile(newNodes)ๅๆๅฐๅทฎๅผ diff - ๅ
็ด ้ๆฏๆถ
WeakRef + FinalizationRegistry่ชๅจๆธ ็ effect ่ฎข้
ๅ ณ้ฎๆไปถ๏ผ
-
utils/rikka-dom/src/h.tsโReactiveRange/applyChild/h()/createElement -
utils/rikka-dom/src/tags.tsโ ้ข็ๆ็ HTML/SVG/MathML tag helpers -
utils/rikka-dom/src/control-flow.tsโFor / Show / When / Switch / Match -
utils/rikka-dom/src/template.tsโ HTML ๆจกๆฟๅญ็ฌฆไธฒ่งฃๆใcss()ใinlineStyle -
utils/rikka-dom/src/attributes.tsโ ็ฑปๅๅฑๆงๆ ๅฐ
defineElement(tagName, config) ๅฎๆ๏ผ
- ไธบ
attributes็ๆ getter/setter๏ผๅ ถไธญ setter โกsignal.set()+setAttribute() - ไธบๆฏไธชๅฑๆง็ๆ
this.$attrName็ signal ่ฎฟ้ฎๅจ๏ผไพ render ๅๅบๅผไฝฟ็จ๏ผ - ไธบ
events็ๆdispatchEventName(detail)ๅๅๅจ - ๅฐ
methods็ดๆฅๆๅฐๅๅ -
connectedCallbackไธญ attach Shadow DOMใๅบ็จstylesใ่ฐ็จrender()ๆๅ ้template -
disconnectedCallbackๆธ ็ effect / ไบไปถ็ๅฌๅจ
ๅ ณ้ฎๆไปถ๏ผ
-
utils/rikka-elements/src/defineElement.tsโ ๆ ธๅฟ -
utils/rikka-elements/src/utils.tsโ PascalCase / camelCase ๅทฅๅ ท
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ pnpm install โโโโถโ pnpm build โโโโถโ pnpm test:all โ
โ (catalog deps) โ โ (rslib ๆๅปบ ESM) โ โ(lint+type+unit+e2e)โ
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโผโโโโโโโ
โ Changeset โ
โ version bump โ
โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโผโโโโโโโ
โ npm publish โ
โโโโโโโโโโโโโโโ
- rikka-signal API โ ๅๅบๅผๅ่ฏญ่ฏฆ่งฃ
- rikka-dom API โ DOM ๅๅปบไธๅๅบๅผๆธฒๆ
- rikka-elements API โ ่ชๅฎไนๅ ็ด ๅฎไน
Back to Home ยท GitHub ยท npm @takanashi
Rikka Wiki
- Home
- Getting Started
- Architecture Overview
- Core Packages
- Components
- Examples & Patterns
- Development & CI
- For LLMs and Agents
External links