package bonsai
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
A library for building dynamic webapps, using Js_of_ocaml
Install
dune-project
Dependency
Authors
Maintainers
Sources
bonsai-v0.14.0.tar.gz
sha256=43f35d648644492d776bf2c7b86c8227e7793615b6a658432e95f8dccd3631f8
md5=b5e743dbfa64d0da5fd660f14cd0b549
Description
Bonsai is a library for building reusable UI components inside an Incremental-style UI framework such as Incr_dom. The API is broken up into roughly two modules:
- Creating components
- Combining components
Published: 31 May 2020
README
"Bonsai!"
Bonsai is a library that is used to build browser-based frontend applications in OCaml. It builds on top of the technology and lessons learned from Incr_dom ^incr_dom, an incremental frontend framework.
The main differences between Incr_dom and Bonsai are
- Bonsai has a notion of first-class components - read more
Incr_domexpects users to program in theIncrementalmonad; in Bonsai, incrementality is added for you under the hood - read more- Combining Bonsai components is easy (and fun!) - read more
Similarities between Incr_dom and Bonsai:
- Both are built on top of Incremental library for performance optimizations
- Both make use of the
Vdomlibrary and associated helper libraries (lib/vdom_input_widgets,lib/vdom_keyboard, etc..) to help developers construct the view of the app. - Bonsai components are embeddable inside of existing
Incr_domapps!
Table of Contents
Getting Started
Reading Bonsai Concepts is the best place to get an overview of the library and to build a mental model for structuring Bonsai applications.
Examples of using Bonsai in a web browser can be found in web/examples.
Dependencies (10)
-
dune
>= "2.0.0" -
virtual_dom
>= "v0.14" & < "v0.15" -
ppx_pattern_bind
>= "v0.14" & < "v0.15" -
ppx_jane
>= "v0.14" & < "v0.15" -
incremental
>= "v0.14" & < "v0.15" -
incr_map
>= "v0.14" & < "v0.15" -
incr_dom
>= "v0.14" & < "v0.15" -
core_kernel
>= "v0.14" & < "v0.15" -
async_kernel
>= "v0.14" & < "v0.15" -
ocaml
>= "4.08.0"
Dev Dependencies
None
Used by
None
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page