The worker receives a file path in the JSON message, dynamically
imports it, renders it. No registerComponent API, no app entry file,
no export maps. Django's template backend resolves the template name
to an absolute path against DIRS, same as every other template engine.
render(request, 'components/Hello.tsx', {'name': 'World'})
Verified working: curl http://localhost:8000/hello/ returns
<div id="mizan-root"><div>Hello, World!</div></div>
Changes:
- worker.tsx: receives file path, dynamic import with cache
- bridge.py: sends file path instead of component name
- backend.py: resolves template name against DIRS to absolute path
- Fix bridge.py:147 bug (referenced deleted 'component' variable)
- Example app: Hello.tsx component, /hello/ view, template config
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
14 lines
307 B
Python
14 lines
307 B
Python
from django.http import HttpResponse
|
|
from django.shortcuts import render
|
|
from django.urls import include, path
|
|
|
|
|
|
def hello_view(request):
|
|
return render(request, "components/Hello.tsx", {"name": "World"})
|
|
|
|
|
|
urlpatterns = [
|
|
path("api/mizan/", include("mizan.urls")),
|
|
path("hello/", hello_view),
|
|
]
|