Update template-tag-format.md to include info about the JS representation of the runtime compiler#2123
Conversation
✅ Deploy Preview for ember-guides ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for ember-guides ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
| Without specifying `/runtime`, there are additional restrictions required for the argument passed to `template()`: | ||
| - it must be a string literal | ||
|
|
||
| With the `/runtime`, the argument passed to `template()` can be an expression, for example: |
There was a problem hiding this comment.
When you say expression does that also include support for interpolation?
export default template`<div>${someValue}</div>`;There was a problem hiding this comment.
nay -- interpolation is a hazard because it can't be reactive as far as I know -- ideally we'd even add a lint that prevents that.
if reactivity is not needed, then I don't see a reason why this wouldn't work (I expect it to work -- just not be reactive on changes to someValue)
export default template(`<div>${someValue}</div>`);There was a problem hiding this comment.
This is not quite correct, even reactivity should in theory work, if for example you put the template call in a getter and access reactive state. That's probably a fairly expensive thing to do, but would be possible.
| /* someValue could be from anywhere */ | ||
| export default default template(someValue); | ||
| ``` | ||
|
|
There was a problem hiding this comment.
I think it would help (me) to see example use cases for the different possibilities. Maybe when to precompile during a <script> tag in the HTML <head> versus dynamically from a <textarea>. The difference between scope: and ${stringInterpolation}. Use of this in a build tool versus use of this in an HTML file. And how this might look used in a QUnit test or Vitest.
No description provided.