slinky

by shadaj

shadaj / slinky

Write Scala.js React apps just like you would in ES6

480 Stars 42 Forks Last release: 2 months ago (v0.6.6) MIT License 370 Commits 20 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Write Scala.js React apps just like you would in ES6

Get started at slinky.dev

What is Slinky?

Slinky is a framework for writing React apps in Scala with an experience just like using ES6.

Slinky lets you: + Write React components in Scala with an API that mirrors vanilla React + Implement interfaces to other React libraries with automatic conversions between Scala and JS types + Write apps for React Native, React 360, and Electron, including the ability to share code with web apps + Develop apps iteratively with included hot-reloading support

Contributing

Slinky is split up into several submodules: +

core
contains the React.js facades and APIs for creating components and interfaces to external components +
web
contains bindings to React DOM and definitions for the HTML/SVG tag API +
reactrouter
contains bindings to React Router +
history
contains a facade for the HTML5 history API +
native
contains bindings to React Native and external component definitions for native UI elements +
vr
contains bindings to React 360 and external component definitions for VR UI elements +
readWrite
contains the
Reader
and
Writer
typeclasses used to persist state for hot reloading +
hot
contains the entrypoint for enabling hot-reloading +
scalajsReactInterop
implements automatic conversions between Slinky and Scala.js React types +
testRenderer
contains bindings to
react-test-renderer
for unit testing components +
coreIntellijSupport
contains IntelliJ-specific support for the
@react
macro annotation +
tests
contains the unit tests for the above modules (except native and vr which have local tests) +
docs
and
docsMacros
contains the documentation site, which is a Slinky app itself

To run the main unit tests, first install the dependencies by running

npm install
inside the
tests
folder, then from the base folder run
sbt tests/test
. Similarly for React Native tests, run
npm install
inside the
native
folder, then from the base folder run
sbt native/test
.

Note to IntelliJ IDEA users. When you try to import Slinky SBT definition in IDEA and encounter an exception like

java.nio.file.NoSuchFileException: /Users/someuser/.slinkyPluginIC/sdk/192.6817.14/plugins
, you should try to download required IntelliJ files for plugin subproject manually before importing:
sbt coreIntellijSupport/updateIntellij

And then import the project again.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.