website refactor
This commit is contained in:
@@ -43,15 +43,22 @@ useEffect(() => {
|
||||
setViewModel(vm);
|
||||
}, []);
|
||||
|
||||
// Template receives ViewModel, not ViewData
|
||||
return viewModel ? <Template viewModel={viewModel} /> : null;
|
||||
// Template receives ViewData from ViewModel
|
||||
return viewModel ? <Template viewData={viewModel.viewData} /> : null;
|
||||
```
|
||||
|
||||
Templates MUST NOT compute derived values.
|
||||
|
||||
ViewData Builders MUST NOT call the API.
|
||||
|
||||
## 4) Determinism rules
|
||||
## 4) Formatting and SEO
|
||||
|
||||
ViewData is responsible for providing **fully formatted strings** to Templates for Server-Side Rendering (SSR).
|
||||
|
||||
- **SEO Requirement:** All data required for search engines (prices, dates, counts, labels) MUST be formatted in the `ViewData Builder` on the server.
|
||||
- **Template Simplicity:** Templates should simply render the strings provided in `ViewData` without further processing.
|
||||
|
||||
## 5) Determinism rules
|
||||
|
||||
Any formatting used to produce ViewData MUST be deterministic.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user