A Single Page Application URL router, which is a variant of reactpy-router
that uses Django conventions.
Note
Looking for more details on URL routing?
This package only contains Django specific URL routing features. Standard features can be found within reactive-python/reactpy-router
.
URL router that enables the ability to conditionally render other components based on the client's current URL path
.
Pitfall
All pages where django_router
is used must have identical, or more permissive URL exposure within Django's URL patterns. You can think of the router component as a secondary, client-side router. Django will always handle the initial load of the webpage.
You can duplicate all your URL patterns within both Django and ReactPy, but it's easiest to use a wildcard .*
within Django's urlpatterns
and let ReactPy handle the rest. For example...
urlpatterns = [
re_path(r"^.*$", my_reactpy_router_view),
]
components.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
from reactpy import component, html
from reactpy_router import route
from reactpy_django.router import django_router
@component
def my_component():
return django_router(
route("/router/", html.div("Example 1")),
route("/router/any/<value>/", html.div("Example 2")),
route("/router/integer/<int:value>/", html.div("Example 3")),
route("/router/path/<path:value>/", html.div("Example 4")),
route("/router/slug/<slug:value>/", html.div("Example 5")),
route("/router/string/<str:value>/", html.div("Example 6")),
route("/router/uuid/<uuid:value>/", html.div("Example 7")),
route("/router/two_values/<int:value>/<str:value2>/", html.div("Example 8")),
route("/router/*", html.div("Fallback")),
)
See Interface
Parameters
Name Type Description Default*routes
Route
An object from reactpy-router
containing a path
, element
, and child *routes
. N/A
Returns
Type DescriptionVdomDict | None
The matched component/path after it has been fully rendered. How is this different from reactpy_router.browser_router
?
The django_router
component utilizes the same internals as browser_router
, but provides a more Django-like URL routing syntax.
Last update: December 2, 2024
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4