Comments (6)
I'm not sure if you've seen the docs on templ's integration with go templates or the section on template composition.
https://templ.guide/syntax-and-usage/using-with-go-templates
https://templ.guide/syntax-and-usage/template-composition
I'm not sure if those help you get the composition you're looking for, or if the idea you've got is around performance optimisation.
from templ.
Ah, our messages crossed over there.
It would be possible to check if the passed in component is nil, and show default layout that way.
from templ.
I can't really picture the use case. Could you write out the templ code you'd like to write, along with the expected HTML?
from templ.
This specifically targets the injection of dynamically rendered content into a statically rendered template, almost like partial hydration
Consider the following Templ components:
// Contains UI shared across mutiple pages
templ IndexTempl(){
<html>
<body>
{children...}
</body>
</html>
}
// Page level UI
templ PageTempl(data Type){
// render data
}
// Page level function
func Page(w http.ResponseWriter, r *http.Request) templ.Component {
data := fetchData()
return PageTempl(data)
}
While passing Page()
into IndexTempl()
can be achieved per request like follows:
IndexTempl().Render(templ.WithChildren(r.Context(), Page(w, r)), &buffer)
IndexTempl()
has no dynamic data, so theoretically it can be rendered to html on build and have the Page()
passed in per request
If NopComponent
can be overriden to return {{ template 'page' . }}
, I could then use the go html/template
library to parse/pass in the Page()
I understand I can replace {children...}
with {{ template 'page' . }}
but some of my other pages have no dynamic data.
(Sorry if this sounds crazy)
from templ.
I figured out a solution to this, sorry for the unnecessary issue. I will close this now.
Regardless, I do think it's an interesting idea to have the ability to explicitly define default UI if no children are passed in.
from templ.
Appreciate the help Adrian! The docs provided on go template integration is very helpful. And yes, my idea was mainly centered about performance optimization.
from templ.
Related Issues (20)
- Investigate issue raised in vscode-go HOT 1
- LSP: Autocomplete seems broken HOT 2
- VS Code: Request textDocument/codeAction failed. HOT 1
- docs: TailwindCSS setup autocomplete no longer work HOT 8
- Vscode plugin crash HOT 4
- [question] go 1.22 iterators / rangefunc HOT 2
- Release `v0.2.731` breaks Mason.nvim integration HOT 5
- using context with implicit vs explicit import HOT 3
- Error with VSCode: Request textDocument/codeAction failed HOT 1
- LSP on Vscode Broken HOT 4
- Templ gopls functionality seems to still be broken with gopls `v0.16.x` and does not work with gopls `v0.15.3` anymore HOT 3
- Language server seg fault on VSCode HOT 13
- Deeply nested structs / maps are inaccessible and unusable - Ex data.Form.FieldErrors.NewEmail undefined (type validator.FieldErrors has no field or method NewEmail) HOT 5
- bug: "github.com/a-h/templ/runtime" imported as templruntime and not used HOT 2
- Getting this error while using the latest version or templ and gopls HOT 11
- Formatting a parameterized javascript function
- Templ config for passsing additional variables to component HOT 1
- Proxy not ready, retrying infinitely HOT 2
- Improved dev flow
- Proposal: Introduce JsGenericVar for Event and Element Access in element event handlers HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from templ.