-
Notifications
You must be signed in to change notification settings - Fork 3
Javascript Integration
Thiago Santos edited this page Aug 18, 2024
·
2 revisions
Important
This module is a case of studies that shows how you can extend Kotlin Routing to your context.
Maybe you need a routing system to provide HTML DOM elements in a WEB application.
sourceSets {
jsMain.dependencies {
implementation("dev.programadorthi.routing:javascript:$version")
}
}
To get DOM Element based on routing you need to render based in the Routing instance.
import dev.programadorthi.routing.javascript.render
// ...
val router = routing {
// ...
}
fun main() {
render(
routing = router,
root = document.getElementById("root") ?: document.create.div(),
initial = document.create.h1 {
+"I am the initial content"
}
)
}
import dev.programadorthi.routing.javascript.jsRoute
// ...
val router = routing {
jsRoute(path = "/page1") {
// return a HTML element
}
}
router.call(uri = "...")
// or
import dev.programadorthi.routing.javascript.push
// ...
router.push(path = "...")
// or by name
import dev.programadorthi.routing.javascript.pushNamed
// ...
router.pushNamed(name = "...")
import dev.programadorthi.routing.javascript.replace
// ...
router.replace(path = "...")
// or by name
import dev.programadorthi.routing.javascript.replaceNamed
// ...
router.replaceNamed(name = "...")
import dev.programadorthi.routing.javascript.replaceAll
// ...
router.replaceAll(path = "...")
// or by name
import dev.programadorthi.routing.javascript.replaceAllNamed
// ...
router.replaceAllNamed(name = "...")
import dev.programadorthi.routing.javascript.pop
// ...
router.pop()
Sometimes you need to navigate to a route but avoid put it on the stack and avoid a back navigation.
router.push(..., neglect = true)