-
-
Notifications
You must be signed in to change notification settings - Fork 327
Closed
Labels
priority-3-lowMay be resolved one any timeline.May be resolved one any timeline.type-docsAbout changes and updates to documentationAbout changes and updates to documentation
Description
Current Situation
Currently, users are expected to manually construct the component mount HTML needed to embed IDOM into their projects. This is results in poor usability, and even worse, it can very easily cause server/client version mismatches.
Proposed Actions
We need to increase the convenience embedding ReactPy into existing projects, and document this as the primary way of using IDOM
For any web framework that supports HTML templating, we really should use a system identical to that used on ReactPy-Django.
The template tag source code will look something like this
{% load static %}
<div id="{{ idom_mount_uuid }}" class="{{ class }}"></div>
<script type="module" crossorigin="anonymous">
import { mountViewToElement } from "{% static 'django_idom/client.js' %}";
const mountPoint = document.getElementById("{{ idom_mount_uuid }}");
mountViewToElement(
mountPoint,
"{{ idom_websocket_url }}",
"{{ idom_web_modules_url }}",
"{{ idom_ws_max_reconnect_timeout }}",
"{{ idom_component_id }}",
"{{ idom_component_params }}"
);
</script>
We will probably rely on the jinja2 simple tags library.
To be framework agnostic, the static URL will probably need to be set via ReactPy's python config.
Metadata
Metadata
Assignees
Labels
priority-3-lowMay be resolved one any timeline.May be resolved one any timeline.type-docsAbout changes and updates to documentationAbout changes and updates to documentation